【问题标题】:Adding -lboost_serialization to eclipse C++ IDE将 -lboost_serialization 添加到 Eclipse C++ IDE
【发布时间】:2017-08-03 11:29:17
【问题描述】:

实际上我使用的是boost libraries,编译时需要-lboost_serialization。当我在linux 中使用它时,它工作正常,比如g++ -stdc++17 -lboost_serialization。但是,当我通过 eclipse C++ IDE 运行它时,它给出了许多我认为是链接错误的错误

./binary_out_in.o: 在函数boost::archive::detail::common_oarchive<boost::archive::binary_oarchive>::~common_oarchive()': /usr/include/boost/archive/detail/common_oarchive.hpp:35: undefined reference toboost::archive::detail::basic_oarchive::~basic_oarchive()' ./binary_out_in.o: 在函数boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> >::~binary_oarchive_impl()': /usr/include/boost/archive/binary_oarchive_impl.hpp:38: undefined reference toboost::archive::basic_binary_oprimitive >::~basic_binary_oprimitive()' ./binary_out_in.o: 在函数boost::archive::detail::common_iarchive<boost::archive::binary_iarchive>::~common_iarchive()': /usr/include/boost/archive/detail/common_iarchive.hpp:38: undefined reference toboost::archive::detail::basic_iarchive::~basic_iarchive()' ./binary_out_in.o: 在函数boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive, char, std::char_traits<char> >::~binary_iarchive_impl()': /usr/include/boost/archive/binary_iarchive_impl.hpp:37: undefined reference toboost::archive::basic_binary_iprimitive >::~basic_binary_iprimitive()' ./binary_out_in.o: 在函数boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> >::binary_oarchive_impl(std::ostream&, unsigned int)': /usr/include/boost/archive/binary_oarchive_impl.hpp:96: undefined reference toboost::archive::basic_binary_oprimitive

我已经链接了-lboost_serialization,如下图所示,但它仍然给出了同样的问题。我还需要别的吗?

【问题讨论】:

  • 在链接器/库中添加boost_serialization
  • @mch 我也应该像上面一样保留-lboost_serialization
  • 没有。交叉编译也可能存在问题。您的命令行编译使用g++,而您的eclipse 项目是一个交叉编译项目。尝试用交叉编译器在命令行中编译。
  • @mch 谢谢,在 Linker/Libraries 作品中添加boost_serialization
  • @mch 考虑将您的评论复制到Answer 区域。

标签: c++ eclipse boost


【解决方案1】:

你必须在Project/Properties/C-C++Build/Settings/GCC C++ Linker (or Cross C++ Linker)/Libraries/Libraries(-l)下添加库。

点击Add...按钮添加boost_serialization,前面没有-l,Eclipse会自动添加。

【讨论】:

    猜你喜欢
    • 2011-09-23
    • 1970-01-01
    • 2018-04-22
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多