我想试试 Chrono来自 Boost 沙箱。它似乎支持很多东西并且应该是稳定的。
我在我的系统上安装了 1.44 版本的 Boost(包括需要的 boost_system 库)并使用了沙盒版本(下载版本较旧并且缺少 ratio.hpp 文件)。
但它没有编译。尝试编译文档中的简单示例,并链接 boost_system(在带有 LIBS=['boost_system'] 的 scons 中),每次都会发生以下错误:
obj/main.o: In function `main':
/home/***/src/main.cpp:34: undefined reference to `boost::chrono::system_clock::now()'
scons: building terminated because of errors.
这似乎是一个链接器错误。我做错什么了?我在版本 1.44 中链接了 boost_system(通过 scons)并且已经尝试过与旧版本 1.40 相同。
有什么建议吗?你是如何设置你对 chrono 的使用的?
谢谢。
萨沙
编辑: This thread ,这是在谈论兼容性问题,让我认为Chrono的沙盒版本应该可以与boost 1.44一起使用。
最佳答案
如 Installing Chrono 中所述文档,您需要构建和链接 Chrono 库,或者定义 BOOST_CHRONO_INLINED
。
我在从 trunk checkout 构建 Chrono 时遇到了问题,但这可能与 Chrono 文档中提到的 type_traits 不兼容有关。
我能够使用以下 SConstruct 构建示例程序(在修复命名空间错误之后):
env = Environment(
CPPDEFINES = ['BOOST_CHRONO_INLINED'],
CPPPATH = ['/.../boost_1_44_0', ],
LIBPATH = ['/.../boost_1_44_0/stage/lib', ],
LIBS = ['boost_system'],
)
env.Program('chrono-test', 'main.cpp')
关于c++ - 让 Chrono C++ 库 (Boost::sandbox) 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4409928/