所以我想在我的c++项目中添加日志记录,人们说spdlog很好。 我认为 spdlog 这里有非常清晰的安装说明: https://github.com/gabime/spdlog/tree/v1.x 克隆存储库,创建构建文件夹并运行 cmake。 然后是 cmakeFile 的示例。 但我不懂cmake,对库也知之甚少。
据我了解,Cmake 是一个文件,您可以在其中指定构建项目所需的所有内容。但似乎我的 IDE(目前是 windows 的 codeBlocks)为我做了所有这些,所以我从来没有学过 Cmake。
据我了解,库是可以包含在我的项目中的预构建类/函数。 我已经在我的项目中使用了 SDL。为了让它工作,我想我只是运行了一些安装程序来创建这样的库文件
然后我添加了包含路径
Codeblocks->project->build options->Search directories->compiler
以及
中的lib路径Codeblocks->project->build options->Search directories->linker
以及
中的一些设置Codeblocks->project->build options->Linker settings->other linker options
然后我可以包含标头并使用函数和类。
spdlog cmake 文件示例(以及这个问题中的 cmake)让我感到困惑的是它们引用了外部文件(example.cpp 和鼓英雄.h)。它是否应该只指定 spdlog 文件以及放置创建的库文件的输出目录? 为什么 cmake 库需要了解我的项目文件? 它应该只创建一个可供任何项目使用的库,而不仅仅是我的项目。
我觉得我从根本上误解了一些东西。有人能指出我正确的方向吗?
我自己尝试使用spdlog库版本。但项目的 README 很混乱。他们假设 cmake 使用 Makefile 项目,但 Windows 上的列表并非如此。要传递自定义生成器,请将
-G <generator-name>
添加到 cmake 命令。要查找可用的自定义生成器,请输入 cmake -h
并查找 Generators
。
&&
git clone https://github.com/gabime/spdlog.git
cd spdlog && cmake -B build -G 'MinGW Makefiles'
cd build && mingw32-make -j
如果您在 Linux 上尝试使用
-G 'Makefiles'
和 make -j
或类似的东西
libspdlog.a
include/spdlog