2009-11-09 6 views
4

J'ai deux problèmes liés à cmake: d'abord, je n'arrive pas à trouver les inclusions dans le dossier include, et il ne trouve pas le fichier main.cpp sauf si je le place dans le même répertoire comme le CMakeLists.txt. Pouvez-vous m'aider s'il vous plaît?problème répertoires cmake

je la structure de répertoire suivant:

/TRT 
| 
+--- /src     (bunch of .cpp files here) 
     | 
     +--- /include  (header files here) 

Le CMakeLists.txt est situé dans/TRT, main.cpp se trouve dans/TRT/src, includes sont dans/TRT/src/include.

J'ai écrit ce qui suit CMakeLists.txt et placé dans/TRT:

cmake_minimum_required(VERSION 2.6) 
project(TRT) 
add_subdirectory(src) 
include_directories($(TRT_SOURCE_DIR)/include) 
add_executable(trt main) 
target_link_libraries(glut) 

Merci à l'avance

+0

où u ne voulez mettre votre main.cpp? dans src? include est-il au même niveau que src ou src? –

+0

Salut Nadir, merci pour le commentaire, j'ai clarifié mon post. –

Répondre

7

J'utilise l'option parent_scope. Voici un exemple de base:
#CMakeLists.txt in TRT/src
set(trtSources ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp PARENT_SCOPE)


#CMakeLists.txt in TRT
cmake_minimum_required(VERSION 2.6)
project(TRT)
add_subdirectory(src)
include_directories($(TRT_SOURCE_DIR)/src/include)
add_executable(trt ${trtSources})
target_link_libraries(glut)

+0

C'est bizarre, parce que cmake laisse tomber les avertissements (il dit qu'il ne peut pas trouver main.cpp), mais génère le Makefile. Mais ça ne marche toujours pas, ça ne trouvera pas les inclus. –

+0

Je n'ai pas remarqué que votre répertoire include était un sous-répertoire de src. Changez l'instruction include_directories en include_directories ($ (TRT_SOURCE_DIR)/src/include) –

+0

Merci beaucoup :) –