# 1. ROS2依赖:rclcpp(用ament_target_dependencies)
find_package(rclcpp REQUIRED)

# 2. 非ROS2依赖:OpenCV(用find_package+target_link_libraries)
find_package(OpenCV REQUIRED)

# 3. 自定义依赖:自己写的头文件在src/include(用target_include_directories)
add_executable(robot_server src/robot_server.cpp)

# 绑定ROS2依赖(rclcpp)
ament_target_dependencies(robot_server rclcpp)

# 绑定非ROS2依赖(OpenCV)+ 自定义头文件路径
target_include_directories(robot_server PUBLIC src/include)
target_link_libraries(robot_server ${OpenCV_LIBS})
命令 核心作用 适用场景 优先级 / 推荐度
ament_target_dependencies 一站式配置 ROS2 依赖(头文件 + 库路径 + 链接) ROS2 生态内的依赖(rclcpp、std_msgs 等) 最高(优先用)
target_link_libraries 绑定具体库文件(.so/.a) 非 ROS2 依赖(OpenCV、Boost 等) 高(必须用)
target_include_directories 给指定目标设置头文件路径(目标级) 自定义头文件、非 ROS2 依赖的头文件 高(替代 include_directories)
link_directories 全局设置库文件搜索路径 库文件在非标准路径(极少用) 低(尽量不用)
include_directories 全局设置头文件搜索路径 头文件在非标准路径(极少用) 低(尽量不用)
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐