cmake_minimum_required(VERSION 3.8) project(amadeus_26) # 使用 C++17 set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # 查找依赖 find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(std_msgs REQUIRED) # 添加 SDK 库路径 set(TRANSMITTER_SDK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib/transmitter_sdk) link_directories(${TRANSMITTER_SDK_PATH}/lib/linux/x64) # 包含目录 include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${TRANSMITTER_SDK_PATH}/inc ) # 创建可执行文件 add_executable(transmitter_test_node src/transmitter_test_node.cpp) # 设置 RPATH,使可执行文件能找到共享库 set_target_properties(transmitter_test_node PROPERTIES BUILD_WITH_INSTALL_RPATH FALSE LINK_FLAGS "-Wl,-rpath,'${TRANSMITTER_SDK_PATH}/lib/linux/x64'" ) # 链接依赖 ament_target_dependencies(transmitter_test_node rclcpp std_msgs ) # 链接 SDK 库和依赖 target_link_libraries(transmitter_test_node dm_device usb-1.0 pthread ) # 安装目标 install(TARGETS transmitter_test_node DESTINATION lib/${PROJECT_NAME} ) # 安装 launch 文件(如果有) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME} OPTIONAL ) ament_package()