0

静的ブースト ライブラリを使用する cpp ファイルをコンパイルしようとしています。VS プロジェクト ファイルをセットアップしていないため、Visual Studio 2008 コマンド プロンプトを使用しています。

私が使用しているコマンドは次のとおりです(ソースコードを含むフォルダーから実行します):

cl /EHsc /I "C:\Program Files\boost\boost_1_53_0" Client.cpp

エラーは次のとおりです。

LINK: fatal error LNK1104: cannot open file 'libboost_system-vc90-mt-s-1_53.lib'

ただし、ファイル「libboost_system-vc90-mt-s-1_53.lib」は「C:\Program Files\boost\boost_1_53_0\stage\lib」にあります。リンクに失敗しただけですか?

を使用して直接含めてみました

cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" /I "C:\Program Files\boost\boost_1_53_0\stage\lib\" Client.cpp 同じエラーが発生します。

また、次のように /link を使用して直接リンクしようとしました。 cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" /link "C:\Program Files\boost\boost_1_53_0\stage\lib\libboost_system-vc90-mt-s-1_53.lib" Client.cpp

別のエラーを返します: cl : Command line error D8003 : missing source filename

コンパイラフラグを間違って呼び出しているようです? しかし、どこで/どのように見ることができません。

ここに同様の質問がありますが、解決策には、ビジュアルスタジオ/プロジェクトファイルの設定方法に関する問題が含まれます。私はプロジェクト ファイルを持っていないので、表示できない、またはプロジェクトを設定する必要がある上記の簡単な解決策はありますか?

事前に助けてくれてありがとう!

4

1 に答える 1

1

ライブラリ ファイルの場所をリンカに通知する必要があります。最後のコマンド ラインと非常によく似ていましたが、/linkオプションの前にファイル名を付ける必要があります。これはうまくいくはずです:

cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" Client.cpp /link "C:\Program Files\boost\boost_1_53_0\stage\lib\libboost_system-vc90-mt-s-1_53.lib"

また、同じディレクトリ内の複数のライブラリにリンクする場合は、 .libファイルLIBPATHを探す場所をリンカーに指示するオプションを使用する方が簡潔です。

cl /EHsc /I"C:\Program Files\boost\boost_1_53_0" Client.cpp /link "libboost_system-vc90-mt-s-1_53.lib" /LIBPATH:"C:\Program Files\boost\boost_1_53_0\stage\ライブラリ\"

于 2013-06-10T05:12:29.877 に答える