Path CMake生成的Eclipse CDT项目没有系统包含

Path CMake生成的Eclipse CDT项目没有系统包含,path,include,system,cmake,Path,Include,System,Cmake,我的问题与此类似: 我创建了一个cmake项目,并使用 cmake .. -G "Eclipse CDT4 - Unix Makefiles" 创建Eclipse CDT4项目 但是在CDT IDE中,标准的include路径没有列出,并且所有STL或系统内置头文件include指令都标记为“无法解析”,因此“打开声明”或其他大量操作无法完成 但是,我可以毫无问题地编译它 我的同事也有一个cmake项目,但它非常复杂。从他的cmake项目生成的CDT项目确实包含系统。但是他的cmake太复杂了

我的问题与此类似:

我创建了一个cmake项目,并使用

cmake .. -G "Eclipse CDT4 - Unix Makefiles"
创建Eclipse CDT4项目

但是在CDT IDE中,标准的include路径没有列出,并且所有STL或系统内置头文件include指令都标记为“无法解析”,因此“打开声明”或其他大量操作无法完成

但是,我可以毫无问题地编译它

我的同事也有一个cmake项目,但它非常复杂。从他的cmake项目生成的CDT项目确实包含系统。但是他的cmake太复杂了,他告诉我他没有做任何特殊的事情来包含系统路径

有人能帮我吗?谢谢

我的主要CMakeLists.txt:

CMake_Minimum_Required(VERSION 2.8)

# Some settings
Set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
CMake_Policy(SET CMP0015 NEW)

#Include(CMakeProcedures.cmake)
#CheckEnvironment()

# Set the compiler and its version if needed

# Create the project
Project(MyProjectName CXX)

# Set the compiler
Set(CMAKE_CXX_COMPILER /usr/bin/g++)

# Detect whether we are in-source
If (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
    Message(FATAL_ERROR "In-source building is not allowed! Please create a 'build' folder and then do 'cd build; cmake ..'")
EndIf()

# Set the output dirs
Set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
Set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

# Add source subdirs to the build
Add_Subdirectory(src)
# Add_Subdirectory(test EXCLUDE_FROM_ALL)
彼得

一种解决方法是手动将这些添加到CDT IDE:

/usr/include/c++/4.5
/usr/include/c++/4.5/backward
/usr/include/c++/4.5/i686-linux-gnu
/usr/include/i386-linux-gnu
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include-fixed
/usr/local/include

但这不是解决方案。

我终于发现这条线是问题的根源:

Project(MyProjectName CXX)
如果我们删除可选参数CXX,生活就好了

谁能告诉我为什么


彼得

这只是一个解决办法。不是自动设置系统包含的解决方案您可以在此处查看:我有完全相同的问题,但对我来说,删除CXX没有帮助。Eclipse仍然找不到std::string或resolve#include。古怪的