CMake:设置名称空间包含 目录结构 CMakeLists.txt
我想引用模块2中的模块1,如CMake:设置名称空间包含 目录结构 CMakeLists.txt,cmake,Cmake,我想引用模块2中的模块1,如 #include <XYZ/module_2.h> #包括 我读了这篇文章。但是这个答案对我没有多大用处 如果有一种方法可以做到这一点而不改变目录结构,那就更好了。实现这一点最简单的方法实际上是改变目录结构,但只改变include目录的结构 所以不是 -project (XYZ) --include ---library.h ---module_1.h ---module_2.h --src ---library.cc ---module_1.cc
#include <XYZ/module_2.h>
#包括
我读了这篇文章。但是这个答案对我没有多大用处
如果有一种方法可以做到这一点而不改变目录结构,那就更好了。实现这一点最简单的方法实际上是改变目录结构,但只改变include目录的结构 所以不是
-project (XYZ)
--include
---library.h
---module_1.h
---module_2.h
--src
---library.cc
---module_1.cc
---module_2.cc
--CMakeLists.txt
你可以做:
-project (XYZ)
--include
---XYZ
----library.h
----module_1.h
----module_2.h
--src
---library.cc
---module_1.cc
---module_2.cc
--CMakeLists.txt
然后,不要使用include\u目录(${PROJECT\u SOURCE\u DIR}/include)
而是使用:
target_include_directories(${PROJECT_NAME}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE
src)
有一种方法可以做到这一点,而无需更改目录结构。
-不,没有这种方法。与我对参考问题的评论相同。
-project (XYZ)
--include
---XYZ
----library.h
----module_1.h
----module_2.h
--src
---library.cc
---module_1.cc
---module_2.cc
--CMakeLists.txt
target_include_directories(${PROJECT_NAME}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE
src)