我试图将spdlog用作日志记录库,但是我不想使用我的软件包管理器(apt)来安装它。我已将include下的spdlog目录复制到我的项目目录的根目录,但是当我尝试编译时,由于包含错误,因为spdlog标头中的#include指令都是绝对的(相对于项目根目录),而不是相对的,gcc找不到文件。

0:10: fatal error: spdlog/common.h: No such file or directory
 #include "spdlog/common.h"


缺少将spdlog库中的所有包含项更改为相对的,如何在项目中使用spdlog?我也在使用CMake来编译我的项目。我的项目根目录中有一个build目录,在其中它先调用cmake ..,然后再调用make进行编译;我需要添加到CMakeLists.txt文件中以包含spdlog吗?

最佳答案

您需要将项目根目录添加到cmake include_directories中,如下所示:

include_directories(
    /absolute/path/
)


或者在项目根目录中,编辑CMakeLists.txt并添加以下内容:

include_directories(
    .
)

关于c++ - 通过复制包含目录的内容来安装spdlog,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52750271/

10-12 05:07