3

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

可能是什么问题?如果您需要更多信息,请告诉我。

4

2 回答 2

1

这对 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
  ...
)
于 2016-01-28T10:56:13.870 回答
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
)

我有一个相同/相似的问题。在此处查看解决方案的更详细说明。

于 2016-01-21T03:11:40.880 回答