UE4包装错误:将问题与OpenSSL联系起来

UE4 packaging error : linking problems with OpenSSL

本文关键字:OpenSSL 联系 起来 问题 包装 错误 UE4      更新时间:2023-10-16

我当前正在尝试使用虚幻引擎4进行项目,该项目从C 代码执行HTTPS请求。

为了实现该目标,我正在使用需要OpenSSL的库C -httplib,因此我将其添加到项目中,并在Project.Build.cs文件中提供了includelib文件的位置,尤其是libssl.lib ET libcrypto.lib

编辑器中的一切都很好,但是一旦我尝试打包项目,我就会得到以下错误(第11-12行)

1:UEBuildTarget.GenerateManifest: Writing manifest to C:MyProjectIntermediateBuildManifest.xml
2:ActionGraph.IsActionOutdated: MyProject.exe: Produced item "MyProject.exe" doesn't exist.
3:ActionGraph.DeleteOutdatedProducedItems: Deleting outdated item: C:MyProjectBinariesWin64MyProject.pdb
4:UEBuildTarget.TryRecycleVersionManifests: Target is not using a version file.
5:ParallelExecutor.ExecuteActions: Building 1 action with 12 processes...
6:ParallelExecutor.ExecuteActions:   [1/1] MyProject.exe
7:ParallelExecutor.ExecuteActions:   vpxmd.lib(vpx_src_vpx_codec.obj) : .netmodule ou module MSIL compil� avec /GL trouv�; red�marrage de l'�dition de liens avec /LTCG�; ajoutez /LTCG � la ligne de commande de l'�dition de liens pour am�liorer les performances de l'�diteur de liens
8:ParallelExecutor.ExecuteActions:      Cr�ation de la biblioth�que C:MyProjectBinariesWin64MyProject.lib et de l'objet C:MyProjectBinariesWin64MyProject.exp
9:ParallelExecutor.ExecuteActions:   G�n�ration de code en cours
10:ParallelExecutor.ExecuteActions:   Fin de la g�n�ration du code
11:ParallelExecutor.ExecuteActions:   libcurl_a.lib(pem_all.obj) : error LNK2005: PEM_read_bio_RSAPrivateKey d�j� d�fini(e) dans libcrypto64MD.lib(libcrypto-1_1-x64.dll)
12:ParallelExecutor.ExecuteActions:   libcurl_a.lib(pem_pkey.obj) : error LNK2005: PEM_read_bio_PrivateKey d�j� d�fini(e) dans libcrypto64MD.lib(libcrypto-1_1-x64.dll)
13:ParallelExecutor.ExecuteActions:   C:MyProjectBinariesWin64MyProject.exe : fatal error LNK1169: un ou plusieurs symboles d�finis � diff�rentes reprises ont �t� rencontr�s
14:Log.WriteException: ==============================================================================
15:Log.WriteException: ERROR: UBT ERROR: Failed to produce item: C:MyProjectBinariesWin64MyProject.exe
16:Log.WriteException:        (see C:UsersetudiantAppDataRoamingUnreal EngineAutomationToolLogsC+Program+Files+Epic+Games+UE_4.21UBT-MyProject-Win64-Development.txt for full exception trace)
17:Log.WriteException: 
18:Log.WriteException: BuildException: UBT ERROR: Failed to produce item: C:MyProjectBinariesWin64MyProject.exe
19:Log.WriteException:    à UnrealBuildTool.ActionGraph.ExecuteActions(BuildConfiguration BuildConfiguration, List`1 ActionsToExecute, String& ExecutorName, String TargetInfoForTelemetry, EHotReload HotReload) dans D:Build++UE4SyncEngineSavedCsToolsEngineSourceProgramsUnrealBuildToolSystemActionGraph.cs:ligne 507
20:Log.WriteException:    à UnrealBuildTool.UnrealBuildTool.RunUBT(BuildConfiguration BuildConfiguration, String[] Arguments, FileReference ProjectFile, Boolean bCatchExceptions) dans D:Build++UE4SyncEngineSavedCsToolsEngineSourceProgramsUnrealBuildToolUnrealBuildTool.cs:ligne 1699
21:Log.WriteException: ==============================================================================
22:UnrealBuildTool.RunUBT: Total build time: 42,37 seconds (Parallel executor: 0,00 seconds)

,我没有我能做什么的线索。

主要问题是链接器错误lnk2005,这意味着您是在两个不同的位置中以相同的符号(代码)链接。

即" pem_read_bio_rsaprivatekey"answers" libcurl_a.lib"answers" libcrypto64md.lib"。

在一个猜测" libcurl_a"库中,已经静态地链接了OpenSSL,您正在尝试在openssl动态库" libcrypto64md"(libcrypto-1_1-x644.dll)中链接。

)。 。

您可以将链接放入" libcrypto64md.lib"中,并从" libcurl_a.lib"中获得打开的SSL。如果您不能因为丢失的符号而无法编译或获得使用openssl库的DLL版本的不同版本的Libcurl。