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

Visual Studio 2022中spdlog头文件引用失败问题求助

Visual Studio 2022中spdlog头文件引用失败问题求助

兄弟我太懂你跟着教程卡在这里的憋屈了!我之前跟着Cherno做Hazel引擎的时候也踩过这个spdlog路径的坑,咱们一步步来把它搞定。

首先明确问题根源:你的编译器根本不知道spdlog的头文件在哪——虽然你把spdlog放在了项目的vendor目录里,但Visual Studio的项目没有把这个路径加入到编译时的搜索列表里,所以才会报Cannot open include file: 'spdlog': No such file or directory这个错误。

解决步骤(针对Visual Studio 2022)

  • 右键你的Hazel项目(注意是项目不是解决方案),选择「属性」
  • 在属性窗口里,展开「C/C++」→ 选择「常规」选项
  • 找到「附加包含目录」,点击右边的编辑按钮(小箭头图标)
  • 把spdlog的include目录路径加进去:
    • 可以直接填绝对路径:C:\Users\peyton\source\repos\Hazel2\Hazel\Hazel\src\Hazel\vendor\spdlog-1.x\include
    • 更推荐用相对路径,避免以后移动项目出问题:$(ProjectDir)src\Hazel\vendor\spdlog-1.x\include($(ProjectDir)会自动替换成你的Hazel项目根目录路径)
  • 点击确定保存设置,然后重新生成你的Hazel项目

额外排查点

  • 先确认你的spdlog路径没写错:打开那个include目录,里面必须有一个名为spdlog的子文件夹,而且里面确实有spdlog.h这个文件
  • 如果你是多项目解决方案,一定要确保是给Hazel引擎项目配置的附加包含目录,而不是客户端项目或者解决方案本身
  • 如果还是不行,试试清理项目(菜单栏「生成」→「清理解决方案」),然后重新生成

附上你提供的Log.h代码方便参考:

#pragma once

#include <memory>

#include "Core.h"

#include "spdlog/spdlog.h"

namespace Hazel {

class HAZEL_API Log

{

public:

static void Init();

inline static std::shared_ptr<spdlog::logger>& GetCoreLogger() { return s_CoreLogger; }

inline static std::shared_ptr<spdlog::logger>& GetClientLogger() { return s_ClientLogger; }

private:

static std::shared_ptr<spdlog::logger> s_CoreLogger;

static std::shared_ptr<spdlog::logger> s_ClientLogger;

};

}

以及你遇到的错误信息:

C:\Users\peyton\source\repos\Hazel2\Hazel\Hazel\src\Hazel\Log.h(5,10): fatal error C1083: Cannot open include file: 'spdlog': No such file or directory

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 08:03:04