如何授予我对源文件夹的包含访问权限,以便在使用库时可以通过包含文件间接访问源?
How do I give my include access to my source folder so when the library is used it can be indirectly accessed to the source via the include file?
现在我必须这样做才能间接访问我的来源 headers
#pragam once
#include "../src/some_folder/some_header.hpp"
但我希望能够像这样访问它
#pragam once
#include "some_folder/some_header.hpp"
所以看起来干净多了
基本上,因为我希望通过一个名为 Some_Libaray_Name.hpp 的主 header 间接访问我的图书馆的 header。但我不知道我会怎么做。顺便说一句,我的库是一个 CMake 项目 (C++)。
Basically, since I want the headers of my library to be accessed indirectly through one main header called Some_Libaray_Name.hpp
.
如果主要 header 包含 header,则此 header 要么需要是系统 header,要么需要是 header在编译时可用。因此,您对那些 header 的分类似乎有问题。我建议将 Some_Libaray_Name.hpp
中(可能间接地)包含的 header 移动到包含 Some_Libaray_Name.hpp
的目录(在本例中为 some_folder
的子目录内);这为您提供了一种将某些 header 保密的方法;这是不可能的,如果您只是将源目录添加为包含目录。
当然你可以使用 target_include_directories
添加多个包含目录:
# make include and src include dirs available to targets using target_link_libraries to link some_lib
target_include_directory(some_lib PUBLIC include src)
现在我必须这样做才能间接访问我的来源 headers
#pragam once
#include "../src/some_folder/some_header.hpp"
但我希望能够像这样访问它
#pragam once
#include "some_folder/some_header.hpp"
所以看起来干净多了
基本上,因为我希望通过一个名为 Some_Libaray_Name.hpp 的主 header 间接访问我的图书馆的 header。但我不知道我会怎么做。顺便说一句,我的库是一个 CMake 项目 (C++)。
Basically, since I want the headers of my library to be accessed indirectly through one main header called
Some_Libaray_Name.hpp
.
如果主要 header 包含 header,则此 header 要么需要是系统 header,要么需要是 header在编译时可用。因此,您对那些 header 的分类似乎有问题。我建议将 Some_Libaray_Name.hpp
中(可能间接地)包含的 header 移动到包含 Some_Libaray_Name.hpp
的目录(在本例中为 some_folder
的子目录内);这为您提供了一种将某些 header 保密的方法;这是不可能的,如果您只是将源目录添加为包含目录。
当然你可以使用 target_include_directories
添加多个包含目录:
# make include and src include dirs available to targets using target_link_libraries to link some_lib
target_include_directory(some_lib PUBLIC include src)