我正在用make构建一些东西,我得到了下面的错误。我不知道该怎么做,我在Java之外的经验有限。
我尝试了1.80.0、1.39.0和1.46.1版本的boost,但都有相同的错误。
有人能帮忙吗?
Undefined symbols for architecture x86_64:
"boost::this_thread::interruption_point()", referenced from:
boost::condition_variable::wait(boost::unique_lock<boost::mutex>&) in sip_client.cpp.o
boost::condition_variable::do_wait_until(boost::unique_lock<boost::mutex>&, boost::detail::real_platform_timepoint const&) in sip_client.cpp.o
"boost::detail::get_current_thread_data()", referenced from:
boost::detail::interruption_checker::interruption_checker(_opaque_pthread_mutex_t*, _opaque_pthread_cond_t*) in sip_client.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/sip_client] Error 1
make[1]: *** [examples/sip_client/CMakeFiles/sip_client.dir/all] Error 2
make: *** [all] Error 2
字符串
2条答案
按热度按时间ulydmbyx1#
添加编译器选项-lboost_thread。
更新:
websocketpp附带了CMakeFiles,用于您尝试构建的示例。我不能得到那些提供的makefile来构建,而且我对cmake的了解太少,无法修复它。然而,我确实通过在Linux上运行以下代码来构建没有cmake的示例:
字符串
dgtucam12#
cmake找不到boost_thread-mt库,必须手动添加到cmake。
我将这一行添加到CMakeLists.txt文件中,它将其选中
target_link_libraries(BoostTest ${Boost_LIBRARY_DIR}/libboost_thread-mt.dylib)