需要配置 CmakeList.txt
遇到问题的工程 这样搞了下
add_library(quadrotor_control_for_fengdian_class src/QuadrotorControl.cpp )
target_link_libraries(quadrotor_control_for_fengdian_class ${catkin_LIBRARIES})
add_executable(quadrotor_control src/main.cpp ) #生成可执行文件 swivel_gimbal_controller_cmd_publisher 节点的名字
add_dependencies(quadrotor_control mastering_ros_demo_pkg_generate_messages_cpp) #必须添加add_dependencies,否则找不到自定义的msg产生的头文件
target_link_libraries(quadrotor_control quadrotor_control_for_fengdian_class ${catkin_LIBRARIES})
理解
这个是添加一个 库 第一个参数 就是自定义的库的名字 第二个参数 就是生成库用的cpp , 就是 类 的定义 文件
新增的库名和 catkin库做 连接
将main 函数 生成可执行文件 ,供 rosrun 调用
如注释,添加依赖
这个也必须要加 , main 函数生成的可执行文件命和 类定义cpp生成的库 放这里
一次工程实践 相关 记录
1、类的声明和定义分开文件下, 按 之前那么处理 分布查看
只加这个 先 生成 library
编译成功 类的声明 和函数定义分开写的
生成了这个文件
继续加main.cpp的
只加这个
报错 很多都没定义
加上这个
这一条最后去掉了编译也成功 ,在使用自己的msg头文件时,必须添加add_dependencies,否则找不到自定义的msg产生的头文件
报错一样
再加
报错变了 没有了ros::init()这种未定义了 说明 必须要 加上面的 是最基本的
现在的错误就是没有找到类的定义的函数
把这个库加上
还是没找到 和之前报错一样
给上面那个 类的 定义 那个库 也加上 target_link_libraries
编译就通过了
target_link_libraries ()这个 功能可能是 让其它 文件可以定用这个库