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

时间:2010-12-10 14:44:55

标签: c++ boost linker scons

我想从Boost沙箱中试用Chrono。它似乎支持很多东西,应该是稳定的。

我在我的系统上安装了1.44版本的Boost(包括需要的boost_system lib)并使用了沙盒版本(下载版本较旧,但是错过了例如ratio.hpp文件)。

但它没有编译。尝试编译文档中的简单示例,并链接boost_system(在scons中使用LIBS = ['boost_system']),每次都会发生以下错误:

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链接(通过scons)中有boost_system,并且已经尝试使用旧版本1.40。

任何提示?你是如何设置使用计时器的?

感谢。

的Sascha

编辑: This thread,正在讨论兼容性问题,让我想一下沙盒版的Chrono应该可以使用boost 1.44。

1 个答案:

答案 0 :(得分:1)

Installing Chrono文档中所述,您需要构建和链接Chrono库,或者定义BOOST_CHRONO_INLINED

我在后备箱检查中构建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')