gpt4 book ai didi

boost - 链接器错误 : Boost. Chrono 到 Boost.Timer

转载 作者:行者123 更新时间:2023-12-01 13:34:19 27 4
gpt4 key购买 nike

我正在尝试获得一个使用 Boost.Timer 的简单示例,用于一些秒表性能测量,但我不明白为什么我无法成功地将 Boost.Timer 链接到 Boost.Chrono。我使用以下简单脚本从源代码构建了 boost

.\b2 --clean
CALL bootstrap
.\b2 --build-type=complete address-model=64

但仍然会遇到链接器错误。

70>libboost_timer-vc100-mt-1_49.lib(cpu_timer.obj) : error LNK2001: unresolved external symbol "public: static class boost::chrono::time_point<class boost::chrono::steady_clock,class boost::chrono::duration<__int64,class boost::ratio<1,1000000000> > > __cdecl boost::chrono::steady_clock::now(void)" (?now@steady_clock@chrono@boost@@SA?AV?$time_point@Vsteady_clock@chrono@boost@@V?$duration@_JV?$ratio@$00$0DLJKMKAA@@boost@@@23@@23@XZ)

是否需要实际包含 --with-chrono 标志才能使用 Timer 类?在计时器中找不到任何相关内容 documentation尽管线程 documentation似乎提到了更多我从这个 question 得到的结果这暗示了有关链接修复顺序的一些信息。

这有点令人困惑,因为我看到程序集已构建并准备好通过项目设置 Linker->General->Additional Library Directories 在 Visual Studio 中链接到。我认为 Boost 的设计在处理这些特定库的方式上并不明显。有人可以对此发表评论吗? --with-chrono/USES_CHRONO 宏是怎么回事,它似乎并没有阻止库的构建所以它是否有条件地编译出一些代码,特别是time_point类?

我会根据表 30.1 来思考。在 Thread 文档 ~Default Values for Configurable Features"中 USES_CHRONO 默认为 Yes 所以我应该启用这些功能吗?

C:\...\boost_binaries\msvc10_x64>dir /b | findstr /i chrono
boost_chrono-vc100-mt-1_49.dll
boost_chrono-vc100-mt-1_49.lib
boost_chrono-vc100-mt-gd-1_49.dll
boost_chrono-vc100-mt-gd-1_49.lib
libboost_chrono-vc100-mt-1_49.lib
libboost_chrono-vc100-mt-gd-1_49.lib
libboost_chrono-vc100-mt-s-1_49.lib
libboost_chrono-vc100-mt-sgd-1_49.lib
libboost_chrono-vc100-s-1_49.lib
libboost_chrono-vc100-sgd-1_49.lib

C:\...\boost_binaries\msvc10_x64>dir /b | findstr /i timer
boost_timer-vc100-mt-1_49.dll
boost_timer-vc100-mt-1_49.lib
boost_timer-vc100-mt-gd-1_49.dll
boost_timer-vc100-mt-gd-1_49.lib
libboost_timer-vc100-mt-1_49.lib
libboost_timer-vc100-mt-gd-1_49.lib
libboost_timer-vc100-mt-s-1_49.lib
libboost_timer-vc100-mt-sgd-1_49.lib
libboost_timer-vc100-s-1_49.lib
libboost_timer-vc100-sgd-1_49.lib

C:\...\boost_binaries\msvc10_x64>dir /b | findstr /i _system
boost_system-vc100-mt-1_49.dll
boost_system-vc100-mt-1_49.lib
boost_system-vc100-mt-gd-1_49.dll
boost_system-vc100-mt-gd-1_49.lib
libboost_system-vc100-mt-1_49.lib
libboost_system-vc100-mt-gd-1_49.lib
libboost_system-vc100-mt-s-1_49.lib
libboost_system-vc100-mt-sgd-1_49.lib
libboost_system-vc100-s-1_49.lib
libboost_system-vc100-sgd-1_49.lib

最佳答案

这类似于 another question .答案是:

#include <boost/chrono.hpp>

关于boost - 链接器错误 : Boost. Chrono 到 Boost.Timer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33815603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com