在XX.Build.cs 中添加win平台库导入以及openssl的引用
// 添加Windows系统库
if (Target.Platform == UnrealTargetPlatform.Win64)
{
PublicSystemLibraries.AddRange(new string[] {
"advapi32.lib", // 事件日志和注册表API
"crypt32.lib", // 加密API
"ws2_32.lib", // Windows套接字
"bcrypt.lib", // BCrypt API
"user32.lib", // 用户界面API
"kernel32.lib" // 核心系统API
});
}PublicDependencyModuleNames.AddRange(
new string[]
{
"Core","ImageWrapper","OpenSSL","WebSockets", "Json", "JsonUtilities","HTTP"
// ... add other public dependencies that you statically link with here ...
}
);关闭引擎,重新生成vs工程(推荐清理之前的C++生成代码目录Binaries/ Intermediate/ DerivedDataCache/),点击Generate Visual Studio project files ,等待完成重新打开工程。
然后解决宏定义冲突
这个错误是因为UE中的宏定义与OpenSSL中的定义冲突了。在UE中,
UI被定义为一个命名空间(在ObjectMacros.h中),而OpenSSL的ossl_typ.h中定义了一个名为UI的结构体,导致了重定义错误。
#define UI UI_ST // 这有助于解决某些宏冲突
THIRD_PARTY_INCLUDES_START
#include <openssl/evp.h>
#include <openssl/hmac.h>
THIRD_PARTY_INCLUDES_END
#undef UI这样就完成了openssl库的导入
评论