包含来自其他目录的头文件的 CMake 头文件
CMake header file that includes header files from other directory
给定这棵树:
project
+ lib
+ include
+ include_both.h
+ source
+ file1.cpp
+ file1.h
+ file2.cpp
+ file2.h
+ main_dir
+ main.cpp
在使用 CMake 将 lib
链接到 main_dir
之后,我希望头文件 file1.h 和 file2.h 在 main.cpp 中不可见。我希望库只能由 include_both.h 头文件包含。如何做到这一点,我应该这样做吗?
您可以尝试将 include
目录设为 PUBLIC
目录,这样图书馆的使用者就可以看到它,但请将 source
目录设为私有:
add_library(MyLib SHARED
source/file1.cpp
source/file2.cpp
)
target_include_directories(MyLib
PUBLIC include
PRIVATE source
)
给定这棵树:
project
+ lib
+ include
+ include_both.h
+ source
+ file1.cpp
+ file1.h
+ file2.cpp
+ file2.h
+ main_dir
+ main.cpp
在使用 CMake 将 lib
链接到 main_dir
之后,我希望头文件 file1.h 和 file2.h 在 main.cpp 中不可见。我希望库只能由 include_both.h 头文件包含。如何做到这一点,我应该这样做吗?
您可以尝试将 include
目录设为 PUBLIC
目录,这样图书馆的使用者就可以看到它,但请将 source
目录设为私有:
add_library(MyLib SHARED
source/file1.cpp
source/file2.cpp
)
target_include_directories(MyLib
PUBLIC include
PRIVATE source
)