未定义的引用`boost :: chrono :: system_clock :: now()' - Boost和cpp-netlib

时间:2012-07-20 08:30:03

标签: c++ boost boost-thread undefined-reference chrono

我来这里是为了解决令我感到沮丧的情况。很多。 首先,我在Windows上,我使用MinGW作为编译器(C ++)
我在使用cpp-netlib和SSL(尝试POST到https站点)的程序中遇到了一些问题。我相信一切都井井有条,除了这一个不断躲避我的错误。
C:\boost_1_50_0\boost_1_50_0\stage\lib\libboost_thread-mgw46-mt-1_50.a(thread.o):thread.cpp|| undefined reference to 'boost::chrono::system_clock::now()'

我确信我已经链接到chrono,以及BOOST_ROOT/stage/lib中的所有.a库。我已经尝试重新排序,所以chrono在线程之前被链接。什么都没有帮助。 我已经尝试在我的IDE设置和多个BOOST_CHRONO_INLINED中定义conf.hpp以使其仅为标题,这没有帮助。

我很确定这是一个新手问题,我希望有人能给我一个快速解决方案。我匆匆写了这篇文章,因为我必须在某个地方,但如果你需要更多信息请说出来,我回家后可以更仔细地写。谢谢!

1 个答案:

答案 0 :(得分:9)

  

我已尝试重新排序,因此在线程之前链接了chrono。

那是错的。 Boost.Thread依赖于chrono,因此chrono需要在线程之后链接,因此链接器知道需要哪些符号,并且可以找到哪个库定义它们并链接到它。