在尝试制作我下载的程序时,我遇到以下错误。
CMakeFiles / ptcloud_vslam_node.dir / src / nodes / ptcloud_vslam_node.cpp.o:未定义的符号引用' pcl :: console :: print(pcl :: console :: VERBOSITY_LEVEL,char const *,... )'
/ usr / bin / ld:注意:' pcl :: console :: print(pcl :: console :: VERBOSITY_LEVEL,char const *,...)'在DSO /opt/ros/groovy/lib/libpcl_common.so.1.6中定义,因此请尝试将其添加到链接器 命令行
/opt/ros/groovy/lib/libpcl_common.so.1.6:无法读取符号:操作无效
我尝试在我的cmake文件中添加以下内容
LINK_DIRECTORIES(/opt/ros/groovy/lib/libpcl_common.so.1.6)
TARGET_LINK_LIBRARIES(ptcloud_vslam_node libpcl_common.so.1.6)
但运行cmake时出现以下错误
CMakeLists.txt上的CMake错误:51(TARGET_LINK_LIBRARIES): 无法为目标指定链接库" ptcloud_vslam_node"不是 由这个项目建造。
我应该对我的cmake文件进行哪些修改以修复链接错误?
非常感谢
答案 0 :(得分:1)
它说“链接目录”,但你传递的是一个实际的库,错误是不开心的,因为由于某种原因它想要构建ptcloud_vslam_node
,它似乎没有意识到你正试图指定它
请发布更多信息并在此答案中添加评论,我会回来查看。
Symbol not found when using template defined in a library
这将解释链接如何工作,然后你可能会更好地理解错误。