如何通过库名包含头文件?

时间:2019-01-15 09:48:31

标签: c++ cmake include clion

我正在尝试使用https://github.com/haithngn/cryptor之类的https://github.com/MailCore/mailcore2来制作C ++跨平台密码库

结构为:

enter image description here

我可以使任何头文件包含在这样的语句中吗?

#include <Cryptor/MD5Encryptor.h>

我可以直接从绝对文件路径中包含这些标头

../core/CryptorCore.h

但是这些格式会使源代码无法在XCode项目中成功构建。

我试图模拟MailCore2,但这非常困难。

希望您可以向我建议任何解决方案,或者在我的存储库上进行帮助PR。

谢谢

2 个答案:

答案 0 :(得分:0)

您需要具有适当的层次结构。首先,不,你不能拥有

#include <Cryptor/MD5Encryptor.h>

使用您当前的设置,而不是在构建库时,并且在安装文件时(如果不使用CMake可以不弄平层次结构)。

您可以做的是:

#include <Cryptor/core/abstract/MD5Encryptor.h>

如果您将项目添加到Cryptor文件夹中,而不是位于项目的根目录中。 我建议您创建一个Cryptor.cmake文件,该文件允许人们在安装后拾取您的库,这样他们就不必知道库所在的位置或库的名称。

答案 1 :(得分:0)

没有必要指向每个头文件。只需使用include_directories(PATH_TO_HEADERS)添加包含这些头文件的所有目录。

对于包含头文件src / core / CryptorCore.h的

#include "CryptorCore.h"

您必须指向

include_directories(${PROJECT_DIR}/core/)