Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对符号'的未定义引用_ZN3ros10NodeHandle9subscribeERNSu 16 subscribeeoptionse';_C++_Cmake_Ros - Fatal编程技术网

C++ 对符号'的未定义引用_ZN3ros10NodeHandle9subscribeERNSu 16 subscribeeoptionse';

C++ 对符号'的未定义引用_ZN3ros10NodeHandle9subscribeERNSu 16 subscribeeoptionse';,c++,cmake,ros,C++,Cmake,Ros,我只是想用ROS编译一个程序。我已经链接了所有必要的库,但这个我找不到。我得到的只是代码块中的以下错误(同样在eclipse中) 有人知道如何摆脱这个错误吗?甚至它需要哪个图书馆 /usr/bin/ld:CMakeFiles/DistanceKinectDemo.dir/src/DistanceKinectDemo.cpp.o: undefined reference to symbol '_ZN3ros10NodeHandle9subscribeERNS_16SubscribeOptions

我只是想用ROS编译一个程序。我已经链接了所有必要的库,但这个我找不到。我得到的只是代码块中的以下错误(同样在eclipse中)

有人知道如何摆脱这个错误吗?甚至它需要哪个图书馆

/usr/bin/ld:CMakeFiles/DistanceKinectDemo.dir/src/DistanceKinectDemo.cpp.o: undefined reference to symbol

'_ZN3ros10NodeHandle9subscribeERNS_16SubscribeOptionsE'

/opt/ros/kinetic/lib/libroscpp.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
gpuvoxelgetpointcloud/CMakeFiles/DistanceKinectDemo.dir/build.make:370: recipe for target 
'/home/pcl_gpu/devel/lib/gpuvoxelgetpointcloud/DistanceKinectDemo' failed
make[2]: *** [/home/shupeng/pcl_gpu/devel/lib/gpuvoxelgetpointcloud/DistanceKinectDemo] Error 1
CMakeFiles/Makefile2:1130: recipe for target 'gpuvoxelgetpointcloud/CMakeFiles/DistanceKinectDemo.dir/all' failed

链接器在库列表中找不到符号。 调用
find_package(catkin REQUIRED COMPONENTS…
时,必须列出组件
roscpp
。此外,您需要将
${catkin_LIBRARIES}
添加到
目标链接_库调用中。
最后,要链接的库应该按照它们之间的依赖关系降序列出,这意味着您应该将
${catkin\u libraries}
放在
target\u link\u libraries
调用的末尾,如果您有其他依赖它的库。 最后,您的
CMakeLists.txt
文件应该如下所示:

...
find_package(catkin REQUIRED COMPONENTS roscpp <more packages>)
...
add_executable(DistanceKinectDemo <your cpp files>)
...
target_link_libraries(DistanceKinectDemo
<all your libraries and other dependencies>
${catkin_LIBRARIES}
)
。。。
查找包装(柳絮所需组件roscpp)
...
添加可执行文件(DistanceKinectDemo)
...
目标链接库(距离Kinect演示)
${catkin_图书馆}
)

您可能在CMakeLists.txt中缺少一些链接命令。请编辑您的问题以添加软件包的CMakeLists.txt的内容。问题是查找软件包(catkin REQUIRED COMPONENTS roscpp)。有几种型号。