即使我包含库,也会发生Boost链接错误

时间:2014-04-25 16:53:10

标签: c++ boost

我正在尝试在TravisCI上构建一个依赖于提升的项目。当它运行the g++ command时:

g++ -Wall -L/usr/lib -fopenmp -lboost_system -lboost_filesystem -o bin/test obj/data_parser.o obj/hmm.o obj/test.o

得到this linking error

data_parser.cpp:(.text+0x136a): undefined reference to `boost::system::generic_category()'

但我不仅在-lboost_system命令中包含g++,而且我也知道/usr/lib/libboost_system.so exists

这是在带有g ++ 4.6.3的Ubuntu / Linaro 4.6.3-1ubuntu5系统上。我安装了boost库:

sudo apt-get install libboost-dev libboost-filesystem1.46-dev libboost-iostreams1.46-dev libboost-system1.46-dev

为什么这个链接不正确?

1 个答案:

答案 0 :(得分:2)

将目标文件放在链接器命令之后。

对象和库按顺序链接;只有在解析当前链接对象中的引用时才需要链接库代码。通过将它们放在第一位,处理它们时没有未解析的引用,因此没有代码与它们链接。

相关问题