问题描述

主文件对其它文件内容调用时,明明已经正确引用相关头文件,并确保类和函数已被定义,仍然出现下面问题。

CMakeFiles/robot_pose_ukf_node.dir/src/main.cpp.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
main.cpp:(.text+0x232):对‘FusionUKF::FusionUKF()’未定义的引用
main.cpp:(.text+0x258):对‘DataPoint::DataPoint()’未定义的引用
collect2: error: ld returned 1 exit status

问题解决

在构建多个文件时,注意不要每个头文件下都引用相同的头文件,如果不能确保单个文件依赖的独立性,就统一小范围文件的的相关性,避免在统一个应用场景下重复多次无顺序的调用同一个头文件,莫名其妙的报错是真难受。

第一步

细心检查头文件是否出现引用错乱、重复引用问题;确保引用的函数和类已经正确定义。

第二步

检查CMakeLists.txt文件,确保include文件和对应的.cpp文件被检索编译,检查的关键内容见代码块。(代码块中的内容可以直接添加到CMakeLists.txt文件中的最后一行)

其中,robot_pose_ukf_node是main函数定义的ROS节点,节点后的.cpp文件是定义节点的主文件和可供节点调用的其它文件。/opt/ros/melodic/lib/libcsm.so是ROS的动态链接库。(使用时注意和ROS版本以及自己的定义的ROS节点对应)

include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
include_directories(include/${PROJECT_NAME})add_executable(robot_pose_ukf_node src/datapoint.cppsrc/measurementpredictor.cppsrc/statepredictor.cppsrc/stateupdater.cppsrc/fusionukf.cppsrc/main.cppsrc/tools.cpp)target_link_libraries(robot_pose_ukf_node${catkin_LIBRARIES}/opt/ros/melodic/lib/libcsm.so)

ROS系统中编写多个C++文件时,主文件调用其它文件函数或类时出现:对“xxxxxx“未定义的引用问题记录相关推荐

  1. 疑难杂症篇(十八)--ROS系统中使用SLAM算法建图时出现地图漂移的几种原因

    本篇主要介绍在ROS系统中使用SLAM算法建地图时出现地图定位漂移的几种原因及可以采取的措施. 1.SLAM建图时出现的定位漂移现象 2.原因分析 里程计数据发生异常: 计算机的配置不高,计算机建图过 ...

  2. ROS系统中实现点云聚类(realsense数据源)

    本文主要介绍ROS系统中如何订阅并解码realsense点云数据,并对点云进行稀疏.去噪.聚类. 环境配置见<ROS系统中从零开始部署YoloV4目标检测算法(3种方式)> 需要安装的第三 ...

  3. 思岚A1激光雷达windows系统与ROS系统中的使用

    前言: 忙了一天,遇到了无数个问题解不开,结果竟然是因为安卓的USB连接线有问题,博友们,如果你们遇到如下问题: 思岚A1激光雷达windows上位机的使用:下载了串口的驱动(CP210x VCP W ...

  4. 在 Linux 系统中安装Load Generator ,并在windows 调用

    在 Linux 系统中安装Load Generator ,并在windows 调用 由于公司需要测试系统的最大用户承受能力,所以需要学习使用loadrunner.在安装的时候碰到了不少问题,所以写下此 ...

  5. 分时系统中,当用户数目为100时,为保证响应时间不超过2s,此时的时间片最大应该为

    分时系统中,当用户数目为100时,为保证响应时间不超过2s,此时的时间片最大应该为? 解: 公式为:响应时间/用户数 其他类似. 因此答案为:2/100=20ms

  6. linux拷贝文件时如果想保留文件原有的时间属性,可以使用选项,Linux考试题完整版.doc...

    PAGE Linux基础知识 自测题 单选题(共计40题) 1. 查看命令cd的绝对路径,结果如下: # which cd /usr/bin/which: no cd in (/usr/kerbero ...

  7. 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数‘main’中: main1.c:(.text+0x9c):对‘pirnt1’未定义的引用 collect2: 错误:ld 返回 1

    报错 使用gcc编译报错:/tmp/ccoLTk4o.o:在函数'main'中: main1.c:(.text+0x9c):对'pirnt1'未定义的引用 collect2: 错误:ld 返回 1 解 ...

  8. 结合xxx.cpp:(.text+0x55):对‘xxx’未定义的引用剖析Linux环境下动态库.so文件

    操作系统:Linux系统 场景:g++编译,连接动态库文件时 错误示例(中文): /tmp/cccgNNpb.o:在函数'main'中: test.cpp:(.text+0x55):对'myprint ...

  9. python3文件的编码类型是_Python3.x环境创建Python脚本文件时,需要将文件编码格式设置为...

    Python3.x环境创建Python脚本文件时,需要将文件编码格式设置为 答:UTF-8 在黄种人群中有一种叫白化病的隐性遗传病,其致病原因是 答:表皮中的黑色素细胞缺乏酪氨酸酶: 注射用水可通过( ...

最新文章

  1. MVC使用 Elmah 日志记录组件
  2. 一个简单程序的反编译
  3. php smarty 源码,Smarty php源码 v3.1.39
  4. POJ 1753 Flip Game DFS枚举
  5. Spring @Transactional踩坑记
  6. 字体外面怎么加边框_字体处理的6种方法,解决ppt种字体不突出的问题
  7. 软件工程心理学之1----开篇
  8. [POI2008]STA-Station
  9. 只想安安静静地敲完一段代码
  10. mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录
  11. python import _ssl_如何在python 2.7.6中导入_ssl?
  12. Mac 使用命令行工具解压和压缩 rar 文件
  13. linux yum 安装软件
  14. LayaAir cacheAs 缓存与 visible 隐藏
  15. 阮一峰ES6入门读书笔记(十五):Class
  16. ECS Windows 系统蓝屏 (BSOD) 以及停止响应 (Hang) 的处理
  17. 上海商业车险进平台验收通过
  18. 三角形各种心的代数几何性质
  19. Vue-html5-editor 编辑器的使用及一些问题解决
  20. J2SDK和TOMCAT的安装及配置

热门文章

  1. 使用DHT11和51单片机进行温湿度的读取(保证好用版本)
  2. 去除字符串中的转义字符
  3. 我的世界中国版服务器最新版本,中国版Minecraft更新慢,老玩家喜欢玩国际版,只要是MC都好玩...
  4. cadence修改板框倒角_Allegro软件中如何对板框进行倒角及倒角不成功解决方法
  5. 用 FC FOR nexenta 山寨SAN存储
  6. Word2010入门
  7. 看完李宏毅的视频我决定学好英语了
  8. 基于改进人工蜂群算法的K均值聚类算法(Matlab代码实现)
  9. 压缩视频用什么软件比较好?
  10. Android 从网页中跳转到APP