我创建了一个ros catkin包并成功将其导入QtCreator。尽管编译没有问题,但我的包的CMakeLists文件中提到的include目录没有编入索引。
可能是什么问题?如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
这对QtCreator来说有点烦人。对于要查找的include目录中的头文件,它们必须明确地列在add_executable / add_library
中。
我通常使用以下简单(虽然可能有点脏)的解决方案:
file(GLOB_RECURSE HEADERS include/*.hpp include/*.h)
add_executable(compute_rigid_object
${HEADERS} # for qtcreator...
src/the_source_files.cpp
...
)
答案 1 :(得分:0)
从类文件创建库并将库链接到主可执行文件。然后自动完成在QtCreator中工作。
以下是CMakeLists.txt的外观:
cmake_minimum_required(VERSION 2.8.3)
project(example_project)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
find_package(catkin REQUIRED COMPONENTS
roscpp
)
catkin_package()
include_directories(
include
${catkin_INCLUDE_DIRS}
${PROJECT_SOURCE_DIR}
)
# Create a library with all your classes
add_library(myFilesLib
src/class1.cpp
src/class2.cpp
src/class3.cpp
)
target_link_libraries(myFilesLib
${catkin_LIBRARIES}
)
# add your executable
add_executable(${PROJECT_NAME}
src/main.cpp
)
# link the library with your classes to the executable
target_link_libraries(${PROJECT_NAME}
${catkin_LIBRARIES}
myFilesLib
)
我有同样/类似的问题。请参阅解决方案here的更详细说明。