对“boost::archive..."的未定义引用;g++/wsl [英] undefined reference to "boost::archive..." g++ / wsl

查看:79
本文介绍了对“boost::archive..."的未定义引用;g++/wsl的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我同时使用 draco 和 boost.在此

现在我尝试在 wsl 上的 vs-code 中运行这个命令:

 g++ -I ~/local/include -L ~/local/lib -o prog ObjContainer.cpp -ldracodec -lboost_system

错误:

ObjContainer.cpp:(.text._ZN5boost7archive6detail15common_iarchiveINS0_15binary_iarchiveEED2Ev[_ZN5boost7archive6detail15common_iarchiveINS0_15binary_iarchiveEED5Ev]:::+0basarchive_iarchive:::+0basarchive_obasarchive_obasarchive_obasarchive_obasarchive_iarchive_15binary_iarchiveEED2Ev[/tmp/ccqY0aGT.o:在函数`boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive, char, std::char_traits<char>>::~binary_iarchive_impl()':ObjContainer.cpp :( text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEED2Ev [_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEED5Ev] + 0x32):未定义参考`升压::归档:: basic_binary_iprimitive<升压::归档:: binary_iarchive,炭,性病:: char_traits<炭>>::~basic_binary_iprimitive()'/tmp/ccqY0aGT.o:在函数`boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char>>::binary_oarchive_impl(std::ostream&, unsigned int)':ObjContainer.cpp :( text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC2ERSoj [_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC5ERSoj] + 0x55的):未定义参考`升压::归档:: basic_binary_oprimitive<升压::归档:: binary_oarchive,炭,性病:: char_traits<炭>>::basic_binary_oprimitive(std::basic_streambuf<char, std::char_traits<char> >&, bool)'.ObjContainer.cpp :( text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC2ERSoj [_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC5ERSoj] +是0xAB):未定义参考`升压::归档:: basic_binary_oprimitive<升压::归档:: binary_oarchive,炭,性病:: char_traits<炭>>::~basic_binary_oprimitive()'/tmp/ccqY0aGT.o:在函数`boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive, char, std::char_traits<char>>::binary_iarchive_impl(std::istream&, unsigned int)':ObjContainer.cpp :( text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC2ERSij [_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC5ERSij] + 0x55的):未定义参考`升压::归档:: basic_binary_iprimitive<升压::归档:: binary_iarchive,炭,性病:: char_traits<炭>>::basic_binary_iprimitive(std::basic_streambuf<char, std::char_traits<char> >&, bool)'.ObjContainer.cpp :( text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC2ERSij [_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC5ERSij] +是0xAB):未定义参考`升压::归档:: basic_binary_iprimitive<升压::归档:: binary_iarchive,炭,性病:: char_traits<炭>>::~basic_binary_iprimitive()'/tmp/ccqY0aGT.o:在函数`boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char>>::init(unsigned int)':.ObjContainer.cpp :( text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEE4initEj [_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEE4initEj] + 0×21):未定义参考`升压::归档:: basic_binary_oarchive<升压::归档:: binary_oarchive> ::的init()"

解决方案

boost::archive 类是 Boost.Serialization 库的一部分.

您需要在末尾使用 -lboost_serialization -lboost_system 链接.

I'm using draco and boost together. Draco is working well after this question.

I have tried to install boost and i think its done.

Now i try to run this command in vs-code on wsl :

 g++ -I ~/local/include -L ~/local/lib -o prog ObjContainer.cpp -ldracodec -lboost_system

errors:

ObjContainer.cpp:(.text._ZN5boost7archive6detail15common_iarchiveINS0_15binary_iarchiveEED2Ev[_ZN5boost7archive6detail15common_iarchiveINS0_15binary_iarchiveEED5Ev]+0x22): undefined reference to `boost::archive::detail::basic_iarchive::~basic_iarchive()'
/tmp/ccqY0aGT.o: In function `boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive, char, std::char_traits<char> >::~binary_iarchive_impl()':
ObjContainer.cpp:(.text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEED2Ev[_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEED5Ev]+0x32): undefined reference to `boost::archive::basic_binary_iprimitive<boost::archive::binary_iarchive, char, std::char_traits<char> >::~basic_binary_iprimitive()'
/tmp/ccqY0aGT.o: In function `boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> >::binary_oarchive_impl(std::ostream&, unsigned int)':
ObjContainer.cpp:(.text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC2ERSoj[_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC5ERSoj]+0x55): undefined reference to `boost::archive::basic_binary_oprimitive<boost::archive::binary_oarchive, char, std::char_traits<char> >::basic_binary_oprimitive(std::basic_streambuf<char, std::char_traits<char> >&, bool)'
ObjContainer.cpp:(.text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC2ERSoj[_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEEC5ERSoj]+0xab): undefined reference to `boost::archive::basic_binary_oprimitive<boost::archive::binary_oarchive, char, std::char_traits<char> >::~basic_binary_oprimitive()'
/tmp/ccqY0aGT.o: In function `boost::archive::binary_iarchive_impl<boost::archive::binary_iarchive, char, std::char_traits<char> >::binary_iarchive_impl(std::istream&, unsigned int)':
ObjContainer.cpp:(.text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC2ERSij[_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC5ERSij]+0x55): undefined reference to `boost::archive::basic_binary_iprimitive<boost::archive::binary_iarchive, char, std::char_traits<char> >::basic_binary_iprimitive(std::basic_streambuf<char, std::char_traits<char> >&, bool)'
ObjContainer.cpp:(.text._ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC2ERSij[_ZN5boost7archive20binary_iarchive_implINS0_15binary_iarchiveEcSt11char_traitsIcEEC5ERSij]+0xab): undefined reference to `boost::archive::basic_binary_iprimitive<boost::archive::binary_iarchive, char, std::char_traits<char> >::~basic_binary_iprimitive()'
/tmp/ccqY0aGT.o: In function `boost::archive::binary_oarchive_impl<boost::archive::binary_oarchive, char, std::char_traits<char> >::init(unsigned int)':
ObjContainer.cpp:(.text._ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEE4initEj[_ZN5boost7archive20binary_oarchive_implINS0_15binary_oarchiveEcSt11char_traitsIcEE4initEj]+0x21): undefined reference to `boost::archive::basic_binary_oarchive<boost::archive::binary_oarchive>::init()'

解决方案

The boost::archive class is part of Boost.Serialization library.

You need to link with -lboost_serialization -lboost_system at the end.

这篇关于对“boost::archive..."的未定义引用;g++/wsl的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆