This question already has answers here:
What is an undefined reference/unresolved external symbol error and how do I fix it?
(32个答案)
2个月前关闭。
我正在尝试使用spdlog为我目前正在学习如何构建的游戏引擎进行日志记录,并且遇到了这些奇怪的错误。
“未解析的外部符号“私有:静态类std :: shared_ptr Hazel :: Log :: s_CoreLogger”(?s_CoreLogger @ Log @ Hazel @@ 0V?$ shared_ptr @ Vlogger @ spdlog @@@ std @@ A)”
“未解析的外部符号“私有:静态类std :: shared_ptr Hazel :: Log :: s_ClientLogger”(?s_ClientLogger @ Log @ Hazel @@ 0V?$ shared_ptr @ Vlogger @ spdlog @@@ std @@ A)”
这是我的代码(Log.h):
我不知道这是否需要/相关,但是这是我在cpp文件(Log.cpp)中的代码:
(32个答案)
2个月前关闭。
我正在尝试使用spdlog为我目前正在学习如何构建的游戏引擎进行日志记录,并且遇到了这些奇怪的错误。
“未解析的外部符号“私有:静态类std :: shared_ptr Hazel :: Log :: s_CoreLogger”(?s_CoreLogger @ Log @ Hazel @@ 0V?$ shared_ptr @ Vlogger @ spdlog @@@ std @@ A)”
“未解析的外部符号“私有:静态类std :: shared_ptr Hazel :: Log :: s_ClientLogger”(?s_ClientLogger @ Log @ Hazel @@ 0V?$ shared_ptr @ Vlogger @ spdlog @@@ std @@ A)”
这是我的代码(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;
};
}
我不知道这是否需要/相关,但是这是我在cpp文件(Log.cpp)中的代码:
#include "Log.h"
namespace Hazel {
std::shared_ptr<spdlog::logger> s_CoreLogger;
std::shared_ptr<spdlog::logger> s_ClientLogger;
void Log::Init()
{
spdlog::set_pattern("%^[%T] %n: %v%$");
}
}
最佳答案
#include "Log.h"
namespace Hazel {
// declare these as part of Log!
std::shared_ptr<spdlog::logger> Log::s_CoreLogger;
std::shared_ptr<spdlog::logger> Log::s_ClientLogger;
void Log::Init()
{
spdlog::set_pattern("%^[%T] %n: %v%$");
}
}
关于c++ - 我的游戏引擎的spdlog日志记录出现奇怪的“无法解析的外部符号”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58479659/
10-15 12:10