2009-11-09 147 views
4

我有兩個與cmake相關的問題:首先,我無法使它在include文件夾中找到包含,並且它找不到main.cpp文件,除非將它放在同一目錄中作爲CMakeLists.txt。你能幫我麼?cmake目錄問題

我有以下的目錄結構:

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

的的CMakeLists.txt位於/ TRT,main.cpp中位於/ TRT/src,則包括在/ TRT/SRC /包括。

我寫了下面的CMakeLists.txt並把它放在/ 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) 

在此先感謝

+0

那裏做ü想要把你的main.cpp?在src中?包括它是在同一級作爲src或在src? – 2009-11-09 18:20:32

+0

嗨Nadir,感謝您的評論,我已澄清我的帖子。 – 2009-11-10 20:01:59

回答

7

我使用PARENT_SCOPE選項。這裏有一個簡單的例子:
#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

這很奇怪,因爲cmake會丟失警告(它說它找不到main.cpp),但會生成Makefile。但它仍然不起作用,它不會找到包含。 – 2009-11-10 19:54:28

+0

我沒有注意到你的include目錄是src的一個子目錄。將include_directories語句更改爲include_directories($(TRT_SOURCE_DIR)/ src/include) – 2009-11-10 20:57:35

+0

非常感謝:) – 2009-11-10 22:31:53