UE4 编译报错 “Error LNK2019 : 无法解析的外部符号” 一种可能的原因

报错如下:

Module.AssetPackerEditor.cpp.obj: Error LNK2019 : 无法解析的外部符号 "__declspec(dllimport) public: static double DetailedCookStatsExtern::CookBegin_A_TimeSec" (_imp?CookBegin_AssetPacker_GenPakConfig_TimeSec@DetailedCookStatsExtern@@2NA),函数 "public: void __cdecl UAssetPackerEditorManager::GeneratePakConfig(void)" (?GeneratePakConfig@UAssetPackerEditorManager@@QEAAXXZ) 中引用了该符号

原因:CookBegin_A_TimeSec 这个变量它是 class 中的 static double ,并且没有为它做初始化。在UE4中,需要始终为类静态成员做初始化。解决方法是在合适的地方添加上:

double DetailedCookStatsExtern::CookBegin_A_TimeSec = 0.0;

有的博客说C++ 类静态成员会有默认初始化(为0),但对于UE4来说不是合适的。还是需要做初始化。

C++静态成员变量的初始化_c++静态成员变量初始化-CSDN博客

相关推荐
小江村儿的文杰2 天前
UE4 UAT 的六大流程 build cook stage pacakge archive deploy 与UAT的参数
ue4
小江村儿的文杰2 天前
UE4 Rider调试时添加自定义命令行参数
ue4
小江村儿的文杰4 天前
UE4 Mac构建编译报错 no template named “is_void_v” in namespace “std”
macos·ue4
小江村儿的文杰4 天前
理解UE4中C++17的...符号及enable_if_t的用法及SFINAE思想
数据结构·c++·ue4
小江村儿的文杰4 天前
UE4 Mac构建编译报错 no member named “disjunction” in namespace “std”
ue4
小江村儿的文杰5 天前
UE4 Rider如何直接调试PC DebugGame
ue4
DongDongBaJiaYou16 天前
UE5打包,LoadObject加载不出网格|动画
ue5·ue4·虚幻·虚幻引擎
二DUAN帝2 个月前
UE实现路径回放、自动驾驶功能简记
人工智能·websocket·机器学习·ue5·自动驾驶·ue4·cesiumforue
3A是个坏同志3 个月前
UE4手动实现billboard效果让物体始终面向相机正面
ue4
致命的邂逅4 个月前
UE4游戏查找本地角色数据的方法-SDK
游戏·ue4