Windowsでは、次の方法でBoostをコンパイルしました。
Go to the directory tools/build/v2/.
Run bootstrap.sh
Run b2 install --prefix=PREFIX where PREFIX is the directory where you want Boost.Build to be installed
Add PREFIX/bin to your PATH environment variable.
動作中です。これでLinuxでこれを試していますが、成功しませんでした。私は次のような状況にあります。
kron@kron:~/Software/Sources/boost_1_49_0/tools/build/v2$ ./bootstrap.sh
bash: ./bootstrap.sh: /bin/sh^M: bad interpreter: No such file or directory
kron@kron:~/Software/Sources/boost_1_49_0/tools/build/v2$ sh bootstrap.sh
: not foundh: 8:
: not foundh: 10:
: not foundh: 14:
bootstrap.sh: 15: Syntax error: Bad for loop variable
kron@kron:~/Software/Sources/boost_1_49_0/tools/build/v2$ ls -l
total 224
-rw-r--r-- 1 kron kron 271 Nov 5 2006 boost-build.jam
-rw-r--r-- 1 kron kron 7437 Nov 9 2008 boost_build.png
-rw-r--r-- 1 kron kron 7169 Jan 14 2009 boost_build.svg
-rw-r--r-- 1 kron kron 842 Nov 5 2006 boost.css
-rw-r--r-- 1 kron kron 1088 Jun 6 2011 bootstrap.bat
-rw-r--r-- 1 kron kron 778 Oct 29 2003 bootstrap.jam
-rwxr-xr-x 1 kron kron 2737 Jun 6 2011 bootstrap.sh
drwx------ 2 kron kron 4096 Feb 22 18:28 build
-rw-r--r-- 1 kron kron 36462 Jun 6 2011 build-system.jam
答え1
^M
これは入力する。 Windowsでは、改行文字を2文字のシーケンス、キャリッジリターン、改行(CRLFまたはCRLF ^M^J
)で表します。 Linux やその他の Unix は単一文字の LF を使用します。このCRは通常の文字として扱われるため、カーネルは代わりに名前/bin/sh␍
のインタプリタを探します/bin/sh
。また、CRをプレーン文字として扱い、明示的に呼び出すときのコマンド名の一部ですsh
。
これは、ファイルがWindowsコンピュータからコピーされ、テキストファイルであることを示します。 WindowsとLinuxシステム間で直接テキストファイルをコピーすることはできず、行末を変換する必要があります。それはおそらく、Windowsからアーカイブを抽出し、ファイルをLinuxにコピーしたことでしょう。そうではなく、代わりにLinuxからアーカイブを抽出してください。
Boostの場合、現在バージョン 1.49.0、アーカイブは4つの形式で配布されます。
- Unix行の終わりを持つgzipとbzip2。
- zipと7z(Windows行末を含む)
LinuxでBoostをコンパイルする最も簡単な方法は、bzip2アーカイブを使用することです。 7zを使用する必要がある場合は、すべてのテキストファイルdos2unix
または同じコマンドを使用してsed -i -e 's/\r$//'
行末を変換できます。