无法使用cmake解决对符号的未定义引用

时间:2013-09-09 09:15:20

标签: c++ linker cmake

在尝试制作我下载的程序时,我遇到以下错误。

  

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文件进行哪些修改以修复链接错误?

非常感谢

1 个答案:

答案 0 :(得分:1)

它说“链接目录”,但你传递的是一个实际的库,错误是不开心的,因为由于某种原因它想要构建ptcloud_vslam_node,它似乎没有意识到你正试图指定它

请发布更多信息并在此答案中添加评论,我会回来查看。

Symbol not found when using template defined in a library

这将解释链接如何工作,然后你可能会更好地理解错误。