CMake:设置命名空间包括

时间:2018-03-19 13:22:33

标签: cmake

目录结构

-project (XYZ)
--include
---library.h
---module_1.h
---module_2.h
--src
---library.cc
---module_1.cc
---module_2.cc
--CMakeLists.txt

的CMakeLists.txt

cmake_minimum_required(VERSION 3.5)
project(XYZ)

set(CMAKE_CXX_STANDARD 17)

add_library(XYZ SHARED library.cc module_1.cc module_2.cc)

include_directories(${PROJECT_SOURCE_DIR}/include)

我想从module_2引用module_1,如

#include <XYZ/module_2.h>

我读过这篇文章CMakeLists.txt add subfolder which represents namespace (just for organization)。但答案对我来说没有多大用处。

如果有一种方法可以在不更改目录结构的情况下更好。

1 个答案:

答案 0 :(得分:1)

实现此目的的最简单方法实际上是更改目录结构,但仅限于include目录。

所以而不是

df_final.head()

col1  col2
0     2018-01-01 00:00:00

你可以这样做:

-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_directories(${PROJECT_SOURCE_DIR}/include)