gpt4 book ai didi

C++/boost : Undefined Symbols in example?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:17 27 4
gpt4 key购买 nike

我正在尝试编译的示例来自:http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/examples.html(聊天示例)

这是我用来制作它的:

>>>    g++ chat_client.cpp chat_message.hpp
>>> g++ chat_server.cpp chat_message.hpp

这是终端输出的内容:

% g++ chat_client.cpp chat_message.hpp
In file included from chat_client.cpp:17:
chat_message.hpp: In member function ‘void chat_message::encode_header()’:
chat_message.hpp:84: warning: format ‘%4d’ expects type ‘int’, but argument 3 has type ‘size_t’
ld: warning: in chat_message.hpp, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols:
"boost::system::generic_category()", referenced from:
__static_initialization_and_destruction_0(int, int)in cctJA2c1.o
__static_initialization_and_destruction_0(int, int)in cctJA2c1.o
"boost::thread::start_thread()", referenced from:
boost::thread::thread<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >(boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >, boost::disable_if<boost::is_convertible<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >&, boost::detail::thread_move_t<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > > >, boost::thread::dummy*>::type)in cctJA2c1.o
"boost::thread::join()", referenced from:
_main in cctJA2c1.o
"typeinfo for boost::detail::thread_data_base", referenced from:
typeinfo for boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >in cctJA2c1.o
"vtable for boost::detail::thread_data_base", referenced from:
boost::detail::thread_data_base::thread_data_base()in cctJA2c1.o
"boost::thread::~thread()", referenced from:
_main in cctJA2c1.o
_main in cctJA2c1.o
"boost::detail::thread_data_base::~thread_data_base()", referenced from:
boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::~thread_data()in cctJA2c1.o
boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::~thread_data()in cctJA2c1.o
"boost::system::system_category()", referenced from:
boost::system::get_system_category() in cctJA2c1.o
boost::system::error_code::error_code()in cctJA2c1.o
__static_initialization_and_destruction_0(int, int)in cctJA2c1.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
  • Boost 已正确安装。我有另一个应用程序,它使用了几个 boost 位功能。

更新:这是我正在使用的当前命令:

% g++ chat_client.cpp chat_message.hpp -lboost_asio -lboost_thread -o client -L/opt/local/lib/

说找不到-lboost_asio

我查看了 opt/local/lib(安装了 boost 的地方),但没有看到任何 libboost_asio.so 或类似的东西 =\

最佳答案

您需要提供 g++ boost 库以使用 usins -l 选项进行链接。我快速浏览了这个示例并猜测您肯定需要 thread 库。您可以使用

链接它
g++ source.cpp -o executable -lboost_thread 

您可能还需要使用 boost_system 库

g++ source.cpp -o executable -lboost_thread -lboost_system

关于C++/boost : Undefined Symbols in example?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5820269/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com