使用CMake为Eclipse外部库的源文件编制索引

使用CMake为Eclipse外部库的源文件编制索引,eclipse,indexing,cmake,Eclipse,Indexing,Cmake,我正在使用CMake通过使用“EclipseCDT4-UnixMakefiles”构建一个带有外部库的项目 在Eclipse中导入将导致一个工作项目,但Eclipse索引只能正确识别所有头文件和我实现的源文件。 我还想通过使用“ctrl+click”浏览一个外部库的源文件。我不知道如何将该外部库的*.cpp文件添加到我的CMakeList.txt中,以便索引器在不构建库的情况下识别它们。您可以将.cpp文件标记为“仅头文件”,如下所示: # find all filenames in the l

我正在使用CMake通过使用“EclipseCDT4-UnixMakefiles”构建一个带有外部库的项目

在Eclipse中导入将导致一个工作项目,但Eclipse索引只能正确识别所有头文件和我实现的源文件。
我还想通过使用“ctrl+click”浏览一个外部库的源文件。我不知道如何将该外部库的*.cpp文件添加到我的CMakeList.txt中,以便索引器在不构建库的情况下识别它们。

您可以将.cpp文件标记为“仅头文件”,如下所示:

# find all filenames in the lib path and gather them in $YOUR_LIB
FILE(GLOB YOUR_LIB path_to_library/*.?pp)

# create a seperate sourcegroup so it doesn't clutter up the rest of your code
SOURCE_GROUP(\\lib FILES ${YOUR_LIB})

# mark them as header-file only
SET_SOURCE_FILES_PROPERTIES(${YOUR_LIB} PROPERTIES HEADER_FILE_ONLY TRUE)

# add both your code and the lib-code to the project
ADD_EXECUTABLE(program ${YOUR_CODE} ${YOUR_LIB})

我尝试了你的解决方案,但文件没有索引。如果我删除了HEADER\u FILE\u ONLY选项的设置,他将尝试构建文件。这意味着它们包含在构建中,但索引器找不到它们。重建索引会得到与以前相同的输出:“索引的‘g2o’”_ba@build“(5个来源,811个标题)在44.54秒”。我还检查了eclipse属性“索引未包含在构建中的源文件”、“索引未使用的头文件”。我发现,您的解决方案不适用于cmake“EclipseCDT4-UnixMakefiles”设置。但是在这之后使用Unix Makefile generator设置项目将获得所需的功能(使用cmake代码片段)。非常感谢。