c++ 架构x86_64的未定义符号:“boost::this_thread::interrupt_point()”

dtcbnfnu  于 2023-08-09  发布在  其他
关注(0)|答案(2)|浏览(141)

我正在用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

字符串

ulydmbyx

ulydmbyx1#

添加编译器选项-lboost_thread。
更新:
websocketpp附带了CMakeFiles,用于您尝试构建的示例。我不能得到那些提供的makefile来构建,而且我对cmake的了解太少,无法修复它。然而,我确实通过在Linux上运行以下代码来构建没有cmake的示例:

cd websocketpp/examples/sip_client

clang++ sip_client.cpp -lpthread -lboost_thread -Wall -g

字符串

dgtucam1

dgtucam12#

cmake找不到boost_thread-mt库,必须手动添加到cmake。
我将这一行添加到CMakeLists.txt文件中,它将其选中
target_link_libraries(BoostTest ${Boost_LIBRARY_DIR}/libboost_thread-mt.dylib)

相关问题