Getting Boost asio to work

Getting Boost asio to work

本文关键字:work to asio Boost Getting      更新时间:2023-10-16

我正在尝试使用Boost asio库来获取套接字。

我安装了boost使用自制brew install boost

建成后,我尝试了在boost的网站上创建服务器的教程。

我所做的就是将代码粘贴到一个名为main.cc 的文件中

当我尝试编译g++ main.cc时,我得到这个错误:

Undefined symbols for architecture x86_64:
"boost::system::system_category()", referenced from:
  __static_initialization_and_destruction_0(int, int)in ccTbzxpk.o
  boost::asio::error::get_system_category()    in ccTbzxpk.o
  boost::system::error_code::error_code()in ccTbzxpk.o
"boost::system::generic_category()", referenced from:
  __static_initialization_and_destruction_0(int, int)in ccTbzxpk.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

怎么了?

这些是linker errors。如果你看过文档:

为了链接程序,下列库必须可用使用Boost。Asio :

提振。System:: System::error_code和boost::系统::system_error类。提振。Regex(可选)如果您使用read_until()或async_read_until()的任何重载都接受aboost::正则表达式参数。OpenSSL(可选),如果您使用Boost。Asio的SSL支持。

此外,一些示例还需要Boost。线程,提振。Date_Time或Boost。序列化库。

现在,你发布的错误都说:boost::system,这意味着你需要像这样链接(假设一切都是默认的):g++ main.cc -lboost_system

请阅读"静态链接"answers"动态链接"是什么意思?有关链接的详细信息。