boost在使用asio开发编译是出现的错误解决

#include <stdio.h>
#include <stdlib.h>
#include<iostream> 
#include <boost/asio.hpp>
#include<boost/version.hpp> 
#include<boost/config.hpp>

int main(int, char **)

    printf("helloword\n");
     return 0;
}

上面是一个很简单的程序,但是包含了asio.hpp头以后make出现了下面的错误信息

[ 50%] Linking CXX executable boost_demo
CMakeFiles/boost_demo.dir/main.cpp.o: In function `boost::system::system_category()':
/usr/include/boost/system/error_code.hpp:493: undefined reference to `boost::system::detail::system_category_ncx()'
CMakeFiles/boost_demo.dir/main.cpp.o: In function `boost::system::generic_category()':
/usr/include/boost/system/error_code.hpp:498: undefined reference to `boost::system::detail::generic_category_ncx()'
collect2: error: ld returned 1 exit status
make[2]: *** [boost_demo] Error 1
make[1]: *** [CMakeFiles/boost_demo.dir/all] Error 2
make: *** [all] Error 2

翻开源码发现错误的提示信息来自于error_code.cpp文件。

在CMakeLists.txt文件中增加

add_definitions(-DBOOST_ERROR_CODE_HEADER_ONLY)

继续使用make命令,错误消失

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值