在虚幻引擎4.25中使用OpenSSL



我正在尝试使用引擎附带的OpenSSL库。

我正在使用4.25

在我的搜索中,我看到有人说要将OpenSSl作为依赖项添加到我的项目构建文件中。

我看到有几行不同的代码要添加到构建文件中,每一行都会导致错误——通常是关于函数不在当前上下文中。

AddEngineThirdPartyPrivateStaticDependencies(目标,"OpenSSL"(;

是一个例子-我相信我读过一些在哪里可以尝试

ExtraModuleNames.AddRange(新字符串[]{"OpenSSL"}(;-但是OpenSSL并不是一个c++模块。还有一个函数我忘了,但当我尝试它时,我又犯了一个错误,那就是不在上下文中。

到目前为止,只有将文件夹"E:\UE_4.25\Engine\Source\ThirdParty\OpenSSL\1.1.1\Include\Win64\VS2015"添加到visual studio c/c++目录的includes列表中,我才能做一个常规的"包括"openssl/sha.h"。-但当我编译它时,它失败了,说文件不存在。然而,我可以右键单击代码中的include并查看它,以及intellisense识别类和函数。

在解决方案资源管理器中,我可以看到UE4\Source\ThirdParty\openssl下的openssl文件夹,但没有显示任何不同的openssl版本,也没有显示任何源代码文件。

事实上,所有ThirdParty库都只包含一个或多个构建文件,或者扩展名为.tps的文件。

我的最终目标是访问sha-256,生成一个哈希,用于将本地自定义地图与服务器副本进行比较——假设如果哈希不同,则服务器副本是一个新版本,然后下载。

因此,我的终极问题是如何使用Unreal附带的OpenSSL库。

我的问题是我一直试图在目标文件中做事情,而不是在构建文件中——正如Strom在上面的评论中提到的那样。

要在一个不真实的c++项目中启用OpenSSL(我使用的是Visual Studio(:

打开您的项目生成文件。

将OpenSSL添加到PublicDependencyModuleNames:

using UnrealBuildTool;
public class MyProject : ModuleRules
{
public MyProject(ReadOnlyTargetRules Target) : base(Target)
{
PublicDependencyModuleNames.AddRange(new string[] {
"PhysicsCore",
"OpenSSL"
});
}
}

关闭您的解决方案,右键单击您的虚幻项目。uproject文件并选择"生成项目文件";。

要使用openSSL的地方,请在代码文件的顶部添加includes部分或头文件。(在我的例子中,我使用的是evp,正如文档中对sha256所说的那样(。

#define UI UI_ST
THIRD_PARTY_INCLUDES_START
#include "openssl/evp.h"
THIRD_PARTY_INCLUDES_END
#undef UI

最新更新