VS2017开发基于Boost的Linux项目编译报错:对‘boost::system::system_category()’未定义的引用
问题:
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : system::error_code::error_code()’中:
1>/usr/local/include/boost/system/error_code.hpp : error : 449:对‘boost::system::system_category()’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : system::error_category::std_category::equivalent(int, std::error_condition const&) const’中:
1>/usr/local/include/boost/system/error_code.hpp : error : 676:对‘boost::system::generic_category()’未定义的引用
1>/usr/local/include/boost/system/error_code.hpp : error : 679:对‘boost::system::generic_category()’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : system::error_category::std_category::equivalent(std::error_code const&, int) const’中:
1>/usr/local/include/boost/system/error_code.hpp : error : 706:对‘boost::system::generic_category()’未定义的引用
1>/usr/local/include/boost/system/error_code.hpp : error : 709:对‘boost::system::generic_category()’未定义的引用
1>/usr/local/include/boost/system/error_code.hpp : error : 721:对‘boost::system::generic_category()’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : asio::error::get_system_category()’中:
1>/usr/local/include/boost/asio/error.hpp : error : 230:对‘boost::system::system_category()’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : asio::detail::posix_event::posix_event()’中:
1>/usr/local/include/boost/asio/detail/impl/posix_event.ipp : error : 42:对‘pthread_condattr_setclock’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : asio::detail::posix_thread::~posix_thread()’中:
1>/usr/local/include/boost/asio/detail/impl/posix_thread.ipp : error : 35:对‘pthread_detach’未定义的引用
1>C:\Users\Administrator\Desktop\LinuxCmdDemo\LinuxBoostTcpClient\obj\x64\Debug\main.o:在函数‘boost : error : asio::detail::posix_thread::join()’中:
1>/usr/local/include/boost/asio/detail/impl/posix_thread.ipp : error : 42:对‘pthread_join’未定义的引用
解决办法:
(1)配置属性→C/C++→常规→附加包含目录,填Linux中Boost的头文件所在目录,如“/usr/local/inlcude”
(2)配置属性→链接器→常规→附加库目录,填Linux中Boost的链接库文件所在目录,如“/usr/local/lib”
(3)配置属性→链接器→输入→库依赖项,如果使用线程库,则填“pthread”
参考: