0

この環境は win7, codeblocks,vs9,boost1.52,

python ライブラリを使用してブースト ライブラリをインストールしました。「libboost_python-vc90-mt-gd-1_52.lib」などのライブラリ ファイルが生成されます。

次に、コンパイルしてリンクするためのテスト コードを作成します。しかし、エラーが発生しました。ファイル「boost_python-vc90-mt-gd-1_52.lib」を開けません。

VS コンパイラは、"lib" ヘッドを含むライブラリ ファイル名を認識しませんか?どうすれば改善できますか?

4

2 に答える 2

2

名前の先頭にプレフィックスを追加するのlibは Linux の仕様です。Windows では.lib、代わりに末尾に a があります。

ライブラリの名前が「libboost_python-vc90-mt-gd-1_52」の場合、リンカーに正確にその名前を付ける必要があります。

于 2012-12-27T10:29:06.447 に答える
1

まず、Boost は Windows で自動リンクを使用します。したがって、ブースト ライブラリの場所を指定するだけでよく、名前自体は指定しません。

次に、Boost は、静的にリンクされたライブラリと動的にリンクされたライブラリに異なるファイル名を使用します。接頭辞のあるものlibは静的リンク用、ないものは動的リンク用です。

デフォルトでは、Boost は Windows で静的リンクを使用します。定義するBOOST_ALL_DYN_LINKと (特定のライブラリのみを動的にリンクする場合は、ライブラリ固有のマクロもあります)、動的リンクが有効になります。

エラー メッセージから、プロジェクトがBOOST_ALL_DYN_LINK有効になっているようです (プロジェクト設定で、#defineまたはのいずれかで) <boost/config/user.hpp>。静的リンクを希望する場合は、この設定を変更/削除してください。

どちらの方法でも、それぞれのバイナリが利用可能であり、その場所 (ディレクトリのみ) がリンカーに認識されていることを確認してください。

于 2012-12-28T09:44:08.870 に答える