0

VisualStudio2010を使用してブースト1_47_0qpidc ++をコンパイルしようとしたときにスタックしました。これが私が作ったステップシーケンスです:

  1. ビルドブースト1.48.0
  2. BOOST_ROOT、BOOST_INCLUDEDIR、BOOST_LIBRARYDIRなどを%PATH%envに追加しました。変数
  3. cmakePythonRubyをインストールし、それらのパスを%PATH%envに追加しました。変数
  4. 風袋引きされていないqpid-cpp-0.14.tar.gz
  5. ブーストファイル階層の最後の変更により、 https://bugzilla.redhat.com/attachment.cgi?id = 542165&action= diffからパッチが適用されました
  6. qpidで必要ないくつかの名前を変更し、ライブラリをlibbost_LIBRARY-vc100-mt-1_48.libからboost_LIBRARY.lib形式にブーストします。
  7. ' qpidc -0.14'ディレクトリで"cmake-i -G'Visual Studio 2010'"を起動し、*。vcxprojファイルを正常に受信しました

今、問題が現れました。

手順7で作成した「ALL_BUILD.vcxproj」ファイルをロードし、1つのプロジェクト(qpidcommon)をビルドしようとしました。しかし、「ライブラリがありません」というエラーが原因で、できませんでした。Boostライブラリの名前をlibbost_LIBRARY -vc100-mt-1_48.libからboost_LIBRARY-vc100-mt-1_48.libファイル形式に変更し、コンパイルを試みました。

そして、少なくとも、私は次に受け取りました:

...
...
...
(__imp_??0variables_map@program_options@boost@@QAE@XZ) referenced in function 
"public: void __thiscall qpid::Options::parse(int,char const * const *,class 
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" 
(?parse@Options@qpid@@QAEXHPBQBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)

3>D:\wc-gather\tplibs\qpidc-0.14\src\Release\qpidcommon.dll : fatal error LNK1120: 
33 unresolved externals
========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

プロジェクトに直接ライブラリを追加せずに、これを処理する方法についてのアイデアはありません。あなたは?

ありがとう。

4

1 に答える 1

2

boost_LIBRARY-vc100-mt-1_48.lib は、静的ライブラリではなく、インポート ライブラリ (boost_LIBRARY-vc100-mt-1_48.dll 用) である必要があります。名前を元の名前に変更します (lib 接頭辞付き)。次に、フルブーストを構築して、可能なバリエーションを持たせます

bjam -j8 toolset=msvc --build-type=complete

8 コア (Intel i7 など) の場合は -j8 を使用して大幅な高速化 (フル ビルドで 8 分) を行い、boost をインストールします (bjam toolset=msvc --build-type=complete install)。

次に、アプリケーションを再構築してみてください。

于 2012-04-11T08:26:03.960 に答える