我也使用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"的任何想法最后?
答案 0 :(得分:0)
" DSO失踪" - DSO是动态共享对象。您需要将线程库链接到可执行文件。
试试这个:
find_package(Threads)
...
target_link_libraries(webrtcbridge_node ${CMAKE_THREAD_LIBS_INIT})