我创建了一个ros catkin包并成功将其导入QtCreator。尽管编译没有问题,但我的包的 CMakeLists 文件中提到的包含目录没有被索引。
可能是什么问题?如果您需要更多信息,请告诉我。
我创建了一个ros catkin包并成功将其导入QtCreator。尽管编译没有问题,但我的包的 CMakeLists 文件中提到的包含目录没有被索引。
可能是什么问题?如果您需要更多信息,请告诉我。
这对 QtCreator 来说有点烦人。要找到包含目录中的头文件,它们必须在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
...
)
从您的类文件创建一个库并将该库链接到主可执行文件。然后自动完成在 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
)
我有一个相同/相似的问题。在此处查看解决方案的更详细说明。