我在通过 Visual Studio linux 项目编译 asio 代码时遇到问题。我不断收到以下链接错误:
链接对象
1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main.o:错误:在函数
boost::asio::detail::posix_event::posix_event()': 1>/usr/local/include/boost/asio/detail/impl/posix_event.ipp(42): error : undefined reference to
pthread_condattr_setclock' 1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main.o:错误:在函数boost::asio::detail::posix_thread::~posix_thread()': 1>/usr/local/include/boost/asio/detail/impl/posix_thread.ipp(35): error : undefined reference to
pthread_detach' 1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main.o 中:错误:在函数boost::asio::detail::posix_thread::join()': 1>/usr/local/include/boost/asio/detail/impl/posix_thread.ipp(42): error : undefined reference to
pthread_join' 1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main. o:错误:在函数boost::asio::detail::posix_thread::start_thread(boost::asio::detail::posix_thread::func_base*)': 1>/usr/local/include/boost/asio/detail/impl/posix_thread.ipp(60): error : undefined reference to
pthread_create' 1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main.o 中:错误:在函数boost::asio::detail::posix_signal_blocker::posix_signal_blocker()': 1>/usr/local/include/boost/asio/detail/posix_signal_blocker.hpp(43): error : undefined reference to
pthread_sigmask'1>D:\C++\test_beastboost\test_beastboost\obj\x64\ Debug\main.o:错误:在函数中boost::asio::detail::posix_signal_blocker::~posix_signal_blocker()': 1>/usr/local/include/boost/asio/detail/posix_signal_blocker.hpp(50): error : undefined reference to
pthread_sigmask' 1>D:\C++\test_beastboost\test_beastboost\obj\x64\Debug\main.o:错误:在函数中std::thread::thread<std::_Bind<void (*(boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>))(boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>&)>>(std::_Bind<void (*(boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>))(boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::executor>&)>&&)': 1>/usr/include/c++/5/thread(137): error : undefined reference to
pthread_create' 1>collect2 : 错误 : ld 返回 1 退出状态
我已经编译了 boost 1_70,它们位于 usr/local/include/boost 和 usr/local/lib 中。
对于我的链接器,我有以下内容:
-L/usr/local/lib/ -lboost_system
我也尝试添加 -lboost_thread 但无论如何我都在使用标准库线程..
有什么建议么?
我应该在 ubuntu 上重新编译我的 boost 吗?