# 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

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐