我的问题与此类似:http://www.eclipse.org/forums/index.php/m/649323/
我创建了一个cmake项目,并使用了
cmake .. -G "Eclipse CDT4 - Unix Makefiles"
创建Eclipse CDT4项目。
但是在CDT IDE中,标准包含的路径没有列出,并且所有STL或系统内置头文件都包含指令被标记为“无法解析”,因此“Open Declaration”或其他很多操作无法完成。但是,我可以毫无问题地编译它。
我的同事也有一个cmake项目,但它非常复杂。从他的cmake项目DOES生成的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
但这不是解决方案。
答案 0 :(得分:1)
我终于发现这条线造成了问题:
Project(MyProjectName CXX)
如果我们删除了可选的参数CXX,那么生活是美好的。
谁能告诉我为什么?
彼得