簡體   English   中英

從源代碼構建時,boost iostream中的編譯錯誤

[英]Compilation error in boost iostreams when building from source

我正在嘗試從源代碼構建依賴於Boost iostream的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 thisyum install that並不是我真正的選擇。 我猜我正在尋找的是有關如何重建助推器的說明。

我的版本:

  • 提升1.69.0
  • bzip2-1.0.6(也從源代碼構建)
  • CentOS的7
  • Linux 3.10.0-862.14.4.el7.x86_64

提前致謝

您需要在鏈接器命令行中添加-L<boost-libs-dir> -Wl,-rpath=<boost-libs-dir> <boost-libs-dir>是您構建的Boost庫所在的位置,例如/usr/local/lib因為boost標頭位於/usr/local/include

如果在構建boost時未指定--layout=system ,則還需要在庫名稱中指定版本號,例如-lboost_thread-gcc-mt-1_61或類似的名稱。 閱讀Boost庫命名以獲取完整詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM