谷歌一直不友善...
我最近下载了 boost 1.50,并尝试使用它来构建我的项目。这是一个大型项目,使用了多个 boost 功能(线程、信号、指针类、spirit 等)。一些具体细节:
- MSVC 9.0 (2008)
- 静态链接增强
我在链接每个生成的 exe 时遇到错误,但使用 chrono,我没有直接链接。错误是:
libboost_thread-vc90-mt-sgd-1_50.lib(thread.obj) : error LNK2019: unresolved external symbol "public: static class boost::chrono::time_point<class boost::chrono::system_clock,class boost::chrono::duration<__int64,class boost::ratio<1,10000000> > > __cdecl boost::chrono::system_clock::now(void)" (?now@system_clock@chrono@boost@@SA?AV?$time_point@Vsystem_clock@chrono@boost@@V?$duration@_JV?$ratio@$00$0JIJGIA@@boost@@@23@@23@XZ) referenced in function "public: bool __thiscall boost::thread::try_join_until(class boost::chrono::time_point<class boost::chrono::system_clock,class boost::chrono::duration<__int64,class boost::ratio<1,1000000000> > > const &)" (?try_join_until@thread@boost@@QAE_NABV?$time_point@Vsystem_clock@chrono@boost@@V?$duration@_JV?$ratio@$00$0DLJKMKAA@@boost@@@23@@chrono@2@@Z)
I saw 这个问题 https://stackoverflow.com/questions/11575660/undefined-reference-to-boostchronosystem-clocknow-boost-and-cpp-net,但我不直接控制链接顺序(而是使用自动链接功能)。如果我缺少某个特定的库,我可以手动链接它;次优,但有可能。但是,我不知道缺少什么。看来(在我的半受过教育的人看来)该符号是在 chrono 库中 externed 的,而不是在系统库中的。
有什么帮助吗?
看看文档 http://www.boost.org/doc/libs/release/doc/html/thread/build.html。它指定您必须链接到 chrono 和系统才能使用线程,除非您提供一些特定的宏来禁用它们的使用(并失去它们的功能)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)