2011-06-23 12 views
5

Mi problema es similar a esto: http://www.eclipse.org/forums/index.php/m/649323/CMake generada Proyecto Eclipse CDT no Tiene sistema incluye

creé un proyecto cmake, y se utiliza

cmake .. -G "Eclipse CDT4 - Unix Makefiles" 

para crear un proyecto Eclipse CDT4.

Pero en el CDT IDE, las rutas de acceso incluidas estándar no aparecen en la lista, y todos los archivos de encabezado STL o sistema incorporados incluyen directivas marcadas como "no se pueden resolver", por lo que la "Declaración abierta" u otras muchas operación no puede hacerse.

Sin embargo, podría compilarlo sin ningún problema.

Mi compañero de trabajo también tiene un proyecto de cmake, pero es muy complicado. El proyecto CDT generado a partir de su proyecto cmake SÍ tiene el sistema incluido. Pero su habilidad es demasiado complicada, y me dijo que no hizo nada especial para incluir las rutas del sistema.

¿Alguien puede ayudarme? Gracias.

Mi principal 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) 

Peter

Una solución es agregar manualmente estos para el IDE CDT:

/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 

Pero no es la solución.

+0

http://stackoverflow.com/questions/1564668/cmake-and-eclipse-default-include-paths Esto es sólo una solución temporal. No es una solución –

+0

Para configurar el sistema incluye automáticamente puede ver aquí: http://stackoverflow.com/questions/26444845/cmake-generated-c-project-with-system-and-standard-includes – Tik0

Respuesta

1

finalmente me di cuenta de que esta línea está causando el problema:

Project(MyProjectName CXX) 

Si eliminamos el parametro opcional CXX, la vida es buena.

¿Alguien me puede decir por qué?

Peter

+0

Tengo el exactamente el mismo problema, pero para mí no ayuda a eliminar el CXX. Eclipse aún no puede encontrar std :: string o resolver #include . ¡Impar! – joscarsson

Cuestiones relacionadas