【问题标题】:QtCreator not indexing include files of a catkin packageQtCreator 不索引 catkin 包的包含文件
【发布时间】:2015-10-07 13:19:15
【问题描述】:

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

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

【问题讨论】:

    标签: qt-creator ros catkin


    【解决方案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
      ...
    )
    

    【讨论】:

      【解决方案2】:

      从您的类文件创建一个库并将该库链接到主可执行文件。然后自动完成在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-22
        • 1970-01-01
        • 2017-09-24
        • 2019-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多