Я скачал библиотеку (называемую aws-iot-sdk
, и после компиляции я получил каталог с файлами *.o
(объектные файлы). Теперь у меня есть заголовки и некоторые исходные файлы этой библиотеки, и я хочу использоватьих в моем проекте с CMakeLists.txt
. Таким образом, у меня есть моя основная функция с именем main.cpp
, и я связал ее с объектными файлами. Итак, в конце я получил это CMakeLists
:
cmake_minimum_required(VERSION 2.8.3)
project(ros_bridge)
set(${PROJECT_NAME}_CATKIN_COMPONENTS
nav_msgs
roscpp
sensor_msgs
std_msgs
)
set(aws_sdk_PATH /home/pet/aws-iot-device-sdk-cpp/build/CMakeFiles/aws-iot-sdk-cpp.dir/src/)
set_source_files_properties(
${aws_sdk_path}
PROPERTIES
EXTERNAL_OBJECT true
GENERATED true
)
add_compile_options(-std=c++14)
find_package(catkin REQUIRED COMPONENTS ${${PROJECT_NAME}_CATKIN_COMPONENTS})
catkin_package(
INCLUDE_DIRS
include
include/aws_iot_sdk
include/common
CATKIN_DEPENDS ${${PROJECT_NAME}_CATKIN_COMPONENTS}
)
include_directories(
include
include/aws_iot_sdk
${catkin_INCLUDE_DIRS}
)
add_library(ros_client src/ros_client.cpp)
add_library(ConfigCommon include/common/ConfigCommon.cpp)
#add_library(mqtt_client src/mqtt_client.cpp)
add_executable(ros_bridge_node src/main.cpp)
target_link_libraries(ros_bridge_node ${catkin_LIBRARIES} ros_client ${aws_sdk_path})
Теперь, когда я посещаю некоторые файлы заголовков (которые я просто скопировал в файл моего проекта), я получаю некоторые ошибки. Например, <rapidjson>
не найден. Это имеет смысл, поскольку связывание происходило раньше и сохранялось как объектные файлы.
Итак, мой вопрос, как я могу связать мои скопированные заголовочные файлы с его объектными файлами, используя CMakeLists.txt
выше?