You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows平台的Code::Blocks中配置spdlog日志库?

如何在Windows平台的Code::Blocks中配置spdlog日志库?

嘿,我太懂你这种懵懵的感觉了——刚接触CMake和第三方库配置,尤其是之前一直靠IDE自动搞定,突然碰上新库的配置真的容易绕晕!我来给你把事情掰扯清楚~

先解决你最困惑的问题:为什么CMake例子里会有我的项目文件?

你说的完全没错!一个库的编译脚本本来就不该依赖你的项目文件!那些你看到的带example.cpp或者项目头文件的CMake脚本,是用来演示「如何在你的项目里通过CMake引入spdlog」,而不是让你直接用这个脚本去编译spdlog本身。

很多开源库的示例会把「编译库本身」和「演示如何使用库的示例项目」写在同一个脚本里,这才让你产生了误解。spdlog自己的核心CMake脚本(源码根目录的CMakeLists.txt)只会处理库的编译,根本不会管你的项目文件~

不用CMake,直接在Code::Blocks里配置spdlog的步骤

既然你习惯了用Code::Blocks手动配置库(就像之前弄SDL那样),那咱们就不用折腾CMake来管理你的项目,只需要用CMake帮你编译出spdlog的库文件,再手动配置到你的项目里就行:

步骤1:获取spdlog源码

下载spdlog v1.x版本的源码包,解压到你方便的路径,比如D:\ThirdPartyLibs\spdlog。

步骤2:用CMake生成Code::Blocks工程来编译spdlog

CMake其实可以帮你生成Code::Blocks能识别的工程文件,不用你自己写脚本:

  • 打开CMake GUI工具,在「Where is the source code」里选择刚才解压的spdlog源码根目录;在「Where to build the binaries」里新建一个build文件夹(比如D:\ThirdPartyLibs\spdlog\build),用来放编译产物。
  • 点击「Configure」,选择你Code::Blocks用的编译器(比如MinGW),然后跟着提示完成配置。
  • 如果你想编译静态库,可以勾选SPDLOG_BUILD_STATIC选项;如果想动态库就不用改。然后点击「Generate」,这样build文件夹里就会生成Code::Blocks的工程文件了。

步骤3:编译spdlog库

打开build文件夹里生成的Code::Blocks工程(比如spdlog.cbp),切换到「Release」模式,点击编译按钮。编译完成后,会在build文件夹的lib目录下得到库文件(静态库是libspdlog.a,动态库会有.dll和.a两个文件)。

步骤4:在你的项目里配置spdlog

这一步就和你配置SDL完全一样:

  • 编译器搜索目录:打开「Codeblocks->项目->编译选项->搜索目录->编译器」,添加spdlog源码根目录下的include文件夹(比如D:\ThirdPartyLibs\spdlog\include),这样你就能在代码里#include <spdlog/spdlog.h>了。
  • 链接器搜索目录:打开「Codeblocks->项目->编译选项->搜索目录->链接器」,添加刚才编译出来的库所在的lib文件夹(比如D:\ThirdPartyLibs\spdlog\build\lib)。
  • 链接器设置:打开「Codeblocks->项目->编译选项->链接器设置->其他链接选项」,加上-lspdlog(如果是静态库,Windows下MinGW可能还要加-lpthread来支持线程)。

额外捷径:用header-only模式(不用编译库)

spdlog还支持header-only模式,也就是不用编译库文件,直接用头文件就能跑:

  • 只需要把spdlog的include文件夹加到编译器搜索目录,然后在你的项目编译选项里添加-DSPDLOG_HEADER_ONLY宏(在「编译器设置->其他选项」里加),之后直接包含头文件就能用spdlog的所有功能了,连链接库的步骤都省了!

备注:内容来源于stack exchange,提问作者Mabbus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:49:51