通过复制包含目录的内容来安装 spdlog

Posted

技术标签:

【中文标题】通过复制包含目录的内容来安装 spdlog【英文标题】:Installing spdlog by copying contents of include directory 【发布时间】:2018-10-10 23:52:16 【问题描述】:

我正在尝试使用 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 can not find include files的可能重复 【参考方案1】:

需要将项目根目录添加到cmake的include_directories中,像这样:

include_directories(
    /absolute/path/
)

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

include_directories(
    .
)

【讨论】:

这是在搜索路径中包含当前目录的问题。这似乎很明显,因为当前目录是包含spdlog/ 的目录,所以显然spdlog/<whatever>.h 可以解决。谢谢。

以上是关于通过复制包含目录的内容来安装 spdlog的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 postinstall npm 脚本自动将文件从包复制到本地目录?

c# windows service 通过bat文件来安装和卸载自己写的服务

PHP Youtube Data API:未捕获的异常:必须通过composer或下载完整的软件包来安装此库

如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件

如何通过使用 jingle 和 webrtc 来安装 Android voip?

通过安装HomeBrew来安装Python3