0

いくつかのBoostライブラリの動的にリンク可能なビルドが必要ですが、waveはその1つです。b2.exeコマンドラインツールを使用すると、一部のライブラリがビルドされません(その中にはwaveがあります)。これは私がコマンドラインパラメータに使用したものです:

C:\boost>b2.exe --toolset=msvc-10.0 --build-type=complete --with-chrono --with-date_time --with-thread --with-wave link=shared architecture=x86 address-model=64

出力から、スレッドコンポーネントに問題があると推測できます。

.
...removing bin.v2\libs\thread\build\msvc-10.0\debug\address-model-64\architectu
re-x86\threading-multi\boost_thread-vc100-mt-gd-1_50.lib
...removing bin.v2\libs\thread\build\msvc-10.0\debug\address-model-64\architectu
re-x86\threading-multi\boost_thread-vc100-mt-gd-1_50.pdb
...skipped <pbin.v2\libs\wave\build\msvc-10.0\debug\address-model-64\architectur
e-x86\threading-multi>boost_wave-vc100-mt-gd-1_50.dll for lack of <pbin.v2\libs\
thread\build\msvc-10.0\debug\address-model-64\architecture-x86\threading-multi>b
oost_thread-vc100-mt-gd-1_50.lib...

そして、スレッドは他のシンボルに問題があるようです(おそらく日時から):

thread.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) pu
blic: __cdecl boost::gregorian::greg_month::greg_month(unsigned short)" (__imp_?
?0greg_month@gregorian@boost@@QEAA@G@Z) referenced in function "public: __cdecl
boost::gregorian::date::date(enum boost::date_time::special_values)" (??0date@gr
egorian@boost@@QEAA@W4special_values@date_time@2@@Z)
thread.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) pu
blic: __cdecl boost::gregorian::greg_month::operator unsigned short(void)const "
 (__imp_??Bgreg_month@gregorian@boost@@QEBAGXZ) referenced in function "union _L
ARGE_INTEGER __cdecl boost::this_thread::`anonymous namespace'::get_due_time(str
uct boost::detail::timeout const &)" (?get_due_time@?A0x8352ecf9@this_thread@boo
st@@YA?AT_LARGE_INTEGER@@AEBUtimeout@detail@3@@Z)

これらの問題の解決策を探す最初の場所はどこですか?誰かが同様の問題に遭遇しましたか?

4

1 に答える 1

1

bjam(またはb2)を呼び出すときは、ツールセットに-を付ける必要はないので(実際には持ってはいけません)、コマンドはおそらく次のようになります。

b2.exe toolset=msvc-10.0 --build-type=complete --with-chrono --with-date_time --with-thread --with-wave address-model=64

とにかくデフォルトだったので、共有オプションとアーキテクチャオプションを削除しました。うまくいけば、それが役立つでしょう...

于 2013-03-21T00:52:35.650 に答える