【问题标题】:cmake directories problemcmake目录问题
【发布时间】:2009-11-09 10:22:23
【问题描述】:

我有两个与 cmake 相关的问题:首先,我无法在 include 文件夹中找到包含,并且它找不到 main.cpp 文件,除非我将它放在与 CMakeLists 相同的目录中。文本文件。你能帮帮我吗?

我的目录结构如下:

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

CMakeLists.txt 位于 /TRT,main.cpp 位于 /TRT/src,include 位于 /TRT/src/include。

我已经编写了以下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 )

提前致谢

【问题讨论】:

  • 你想把你的 main.cpp 放在哪里?在源代码? include 是和 src 同级还是在 src 中?
  • 嗨,Nadir,感谢您的评论,我已经澄清了我的帖子。

标签: cmake


【解决方案1】:

我使用 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 )

【讨论】:

  • 这很奇怪,因为 cmake 会丢弃警告(它说它找不到 main.cpp),但会生成 Makefile。但它仍然不起作用,它不会找到包含。
  • 我没有注意到你的包含目录是 src 的子目录。将 include_directories 语句更改为 include_directories( $(TRT_SOURCE_DIR)/src/include )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-25
  • 2013-11-23
  • 2011-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多