我正在通过在Raspberry Pi上使用DJIOSDK和ROS Kinetic编写用于控制DJI Matrice无人机的c ++代码。我尝试编译的代码需要一个CMake文件来指定代码中要包含的目录。我尝试更改CMake文件以适合我的代码,但编译器似乎无法识别它。安装ccmake并编译CMake文件后,我收到了从ROS和boost库加载到PI的文件中的错误。由于下载了这些文件,因此我不想更改它们,因此不必更改它们。因此,我想知道CMake文件是否存在任何问题,是否可以对其进行更改以使所有相应的库和头文件进入程序。
project(drone_control)
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
message_generation
nav_msgs
roscppp
dji_sdk
rospy
std_msgs
sensor_msgs
)
find_package(Boost REQUIRED COMPONENTS
thread
asio
system
)
catkin_python_setup()
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake-modules")
if(NOT djiosdk-core_FOUND)
MESSAGE(STATUS "DO NOT FIND THE djiosdk-core LIB,WILL TRY TO DOWNLOAD FROM GITHUB,COMPILE,INSTALL")
execute_process(COMMAND mkdir ${CMAKE_CURRENT_SOURCE_DIR}/../cmake-modules/build)
execute_process(
COMMAND cmake..
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../cmake-modules/build)
execute_process(
COMMAND make
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../cmake-modules/build)
endif()
find_package(DJIOSDK REQUIRED)
set(CMAKE_CXX_flaGS "-std=c++11 ${CMAKE_CXX_flaGS}")
catkin_python_setup()
catkin_package(
INCLUDE_DIRS home/ubuntu/catkin_ws/Onboard-SDK-ROS-3.8/drone_control/include
CATKIN_DEPENDS
message_runtime
geometry_msgs
nav_msgs
std_msgs
nmea_msgs
)
include_directories(
${catkin_INCLUDE_DIRS}
)
include_directories(
/home/ubuntu/catkin_ws/src/Onboard-SDK-ROS-3.8/drone_control/include
/opt/ros/kinetic/include
${DJIOSDK_INCLUDE_DIRS}
/home/ubuntu/boost_1_68_0/libs
/home/ubuntu/boost_1_68_0/boost/asio
/home/ubuntu/boost_1_68_0/boost/system)
add_executable(gimbal_control
src/gimbal_control.cpp)
target_link_libraries(gimbal_control
/home/ubuntu/catkin_ws/src/Onboard-SDK-ROS-3.8/drone_control/include
/opt/ros/kinetic/lib
${catkin_libraRIES}
${DJIOSDK_libraRIES}
${boost_libraRIES})