从源构建时,提升iostreams中的汇编错误
Compilation error in boost iostreams when building from source
我正在尝试从源构建一个依赖iostreams的Linux二进制文件。Boost也是由我的机器上的来源构建的。我会收到以下错误消息,这似乎是Boost中的汇编错误:
g++ -g -O2 -o mkdssp src/dssp.o src/iocif.o src/mas.o src/mkdssp.o src/primitives-3d.o src/structure.o src/utils.o -lboost_date_time-mt -lboost_filesystem -lboost_iostreams-mt -lboost_program_options-mt -lboost_regex-mt -lboost_system -lboost_thread -lpthread
src/mkdssp.o: In function `boost::iostreams::detail::bzip2_decompressor_impl<std::allocator<char> >::~bzip2_decompressor_impl()':
/usr/local/include/boost/iostreams/filter/bzip2.hpp:361: undefined reference to `boost::iostreams::detail::bzip2_base::end(bool, std::nothrow_t)'
src/mkdssp.o: In function `boost::iostreams::detail::bzip2_compressor_impl<std::allocator<char> >::~bzip2_compressor_impl()':
/usr/local/include/boost/iostreams/filter/bzip2.hpp:321: undefined reference to `boost::iostreams::detail::bzip2_base::end(bool, std::nothrow_t)'
我在其他地方看到了类似的帖子,但没有解决方法的食谱。请注意,我的机器上没有sudo,所以对我来说,做rpm install this
或yum install that
并不是一个选择;我想我正在寻找的是有关如何重建增压的说明。
我的版本:
- Boost 1.69.0
- bzip2-1.0.6(也从源构建)
- Centos 7
- Linux 3.10.0-862.14.4.4.4.el7.x86_64
预先感谢
您需要将-L<boost-libs-dir> -Wl,-rpath=<boost-libs-dir>
添加到链接命令行。<boost-libs-dir>
是您构建的Boost库的位置,例如/usr/local/lib
由于您的提升标头在/usr/local/include
中。
如果您在构建Boost时未指定--layout=system
,则还需要指定库名中的版本编号,例如-lboost_thread-gcc-mt-1_61
或类似的东西。阅读Boost Library命名以获取完整详细信息。
相关文章:
- SSE 内联汇编和可能的 g++ 优化错误
- 汇编错误:调用基本型构造函数时无效的转换
- 为什么我的GLSL着色器失败汇编而没有错误消息
- 为什么将char*传递给字符串参数会产生汇编错误
- Android Studio 3 C 文件中充满了错误,但汇编还可以
- C 汇编错误:无匹配的构造函数以进行初始化
- C 11线程汇编错误传递字符串作为复制的引用
- Python安装汇编错误
- binary_search on属性的汇编错误
- 从源构建时,提升iostreams中的汇编错误
- Gmock方法正在抛出汇编错误
- G 生成逻辑上错误的汇编代码
- 增加精神汇编错误
- 汇编错误C 在标题文件中添加函数时
- 为什么我会遇到这些汇编错误
- 代码中的汇编错误
- 关于隐藏,覆盖和虚拟表的汇编错误
- C 汇编错误:对构造函数的引用是模棱两可的
- Berkelium汇编错误
- OpenMP在os x上的汇编错误