QtCreator没有索引包含catkin包的文件

时间:2015-10-07 13:19:16

标签: qt-creator ros catkin

我创建了一个ros catkin包并成功将其导入QtCreator。尽管编译没有问题,但我的包的CMakeLists文件中提到的include目录没有编入索引。

可能是什么问题?如果您需要更多信息,请与我们联系。

2 个答案:

答案 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的更详细说明。