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

#include
#include
#include 
#include
#include 
#include

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命令,错误消失

你可能感兴趣的:(Linux)