【问题标题】:undefined reference to `boost::chrono::system_clock::now()' - Boost, and cpp-netlib对 `boost::chrono::system_clock::now()' 的未定义引用 - Boost 和 cpp-netlib
【发布时间】:2012-07-19 12:17:54
【问题描述】:

我来这里是为了解决让我感到沮丧的情况。很多。 首先,我在 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.hpps 以使其仅成为标题,但这没有帮助。

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。回家后我会尝试一下,但我确实记得,在重新排序之前,那个 chrono 是在线程之后链接的。我会看到的。
    • 你应该发布完整的链接器命令,否则每个人都只是在猜测你可能做了什么或没做什么
    猜你喜欢
    • 2013-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2022-07-07
    • 2012-11-08
    • 1970-01-01
    相关资源
    最近更新 更多