即使我包含库,也会发生增强链接错误
Boost link error occurs even though I'm including the library
我正试图在TravisCI上构建一个依赖boost的项目。运行g++
命令时:
g++ -Wall -L/usr/lib -fopenmp -lboost_system -lboost_filesystem -o bin/test obj/data_parser.o obj/hmm.o obj/test.o
它得到这个链接错误:
data_parser.cpp:(.text+0x136a): undefined reference to `boost::system::generic_category()'
但我不仅在g++
命令中包含了-lboost_system
,我还知道/usr/lib/libboost_system.so
的存在。
这是在Ubuntu/Linaro 4.6.3-1ubuntu5系统上,带有g++4.6.3。我安装了增强库与:
sudo apt-get install libboost-dev libboost-filesystem1.46-dev libboost-iostreams1.46-dev libboost-system1.46-dev
为什么这个链接不正确
将库放在链接器命令中的对象文件之后。
对象和库按顺序链接;只有当需要解析当前链接对象中的引用时,库代码才会被链接。通过将它们放在第一位,在处理它们时就没有未解析的引用,因此没有代码与它们链接。
相关文章:
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- CMake-按正确顺序将项目与C运行时对象文件链接
- 从链接列表c++中删除一个项目
- 有根的二进制搜索树.保留与其父级的链接
- 读取文件的最后一行并输入到链接列表时出错
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node-gyp 在 macOS 上未正确链接库
- 基于boost的程序的静态链接——zlib问题
- 无法链接 CMake 中的本地库
- 在带有brew的MacOS上链接时缺少增强ICU正则表达式符号
- Mac上使用QT创建者的链接增强
- 通过动态链接和手动设置增强单元测试框架
- 如何增强链接库
- windows上的链接增强问题
- 在Linux上使用GCC增强链接
- 增强测试链接
- GCC c++在创建库时的链接增强
- 使链接增强.LNK2005错误
- 即使我包含库,也会发生增强链接错误
- 在MacOS上使用g++的静态链接增强