c++ - 让 Chrono C++ 库 (Boost::sandbox) 工作

标签 c++ boost linker scons

我想试试 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/

相关文章:

c++ - 将临时 std::string 传递给 boost::regex_match

c++ - 我可以在没有结构实例的情况下使用 `hana::keys` 吗?

c++ - 使用 LLVM pass 添加内在函数

module - 具有多个源文件的内核模块中缺少组件

c++ - 对象指针的二维数组

c++ - 构建 veins_inet 子项目时出错

python - 读取管道(C/C++),没有错误,但不是所有数据

c++ - 带条件的断点

c++ - 无法根据 boost::spirit::qi 中的规则创建语法

模板化虚方法的 C++ 链接器错误