未定义的符号参考' pthread_rwlock_wrlock @@ GLIBC_2.2.5'

时间:2017-07-24 13:23:13

标签: c++ linux ros

我也使用WebRTC在ROS项目中工作。

我的问题是,当我尝试构建我的项目时,我明白了:

this.navCtrl.pop();

在其他有类似问题的帖子中搜索,我得出结论我必须将/usr/bin/ld: /home/carlos/Documentos/ROS_WebRTC/catkin_ws/src/libwebrtc/out/lib/libwebrtc.a(thread_pthread.o): undefined symbol reference 'pthread_rwlock_wrlock@@GLIBC_2.2.5' /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line 添加到g ++。

CMAKE FLAG "-pthread"VERBOSE=1一起使用我意识到,事实上,导致问题的.cc文件需要该标志。但我不知道如何添加它。

我尝试过使用catkin_make,但它并没有解决任何问题。

这是我的CMakeFiles.txt:

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lpthread")

这是一段冗长的执行catkin_make:

cmake_minimum_required(VERSION 2.8.3) project(webrtcbridge) add_compile_options(-std=c++11) find_package(catkin REQUIRED COMPONENTS roscpp std_msgs rospy genmsg ) find_package(LibWebRTC REQUIRED) catkin_package() include_directories( include ${catkin_INCLUDE_DIRS} ) include_directories( include ${LIBWEBRTC_USE_FILE} ) add_executable(webrtcbridge_node src/webrtcbridge_node.cc) target_link_libraries (webrtcbridge_node ${catkin_LIBRARIES}) target_link_libraries (webrtcbridge_node ${LIBWEBRTC_LIBRARIES})

关于set" pthread"的任何想法最后?

1 个答案:

答案 0 :(得分:0)

" DSO失踪" - DSO是动态共享对象。您需要将线程库链接到可执行文件。

试试这个:

find_package(Threads)

...

target_link_libraries(webrtcbridge_node ${CMAKE_THREAD_LIBS_INIT})