使用 Visual Studio for Linux 构建虚幻引擎 5 项目 - ld.lld:错误

Building Unreal Engine 5 project with Visual Studio for Linux - ld.lld : error

提问人:Zi1mann 提问时间:4/28/2023 更新时间:5/2/2023 访问量:308

问:

我正在尝试从Visual Studio为Linux的虚幻引擎5项目构建专用服务器。

该项目包含一个插件,该插件依赖于外部库,用于在运行时将 3D 对象/模型导入游戏。可能是该插件仅针对 Windows 进行编译,尽管这与我的应用程序的专用服务器构建无关:服务器构建中不需要导入功能,因此我通过将添加:添加到该文件中将其从该构建配置中排除。无论如何,无法从 Visual Studio 生成项目,因为链接器无法访问与该插件相关的文件。(UE4_Assimp)(Assimp)DisablePlugins.Add("UE4_Assimp");MyGameServer.Target.cs

71>ld.lld : error : cannot open C:/<project dir>/Plugins/UE4_Assimp/Source/ThirdParty/UE_AssimpLibrary/assimp/bin\libassimp.so: The file cannot be accessed by the system.
71>clang++ : error : linker command failed with exit code 1 (use -v to see invocation)
71>Failed to link C:\<project dir>\Binaries\Linux\MyGameServer after 10 retries
71>[2/2] WriteMetadata MyGameServer.target cancelled
71>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.MakeFile.Targets(45,5): error MSB3073: The command "C:\Users\TheaterDo_Medienabt\Documents\UE\Engine\Build\BatchFiles\Build.bat MyGameServer Linux Development -Project="C:\<project dir>\MyGame.uproject" -WaitMutex -FromMsBuild" exited with code 6.
71>Done building project "MyGame.vcxproj" -- FAILED.
... (some more lines without errors) ...
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 69 skipped ==========

但是,指定的文件存在于给定的目录中。文件权限设置为对任何人进行读取和写入。它是使用 cmake 在 WSL 2 Ubuntu 上编译/构建的。libassimp.so

构建 Win64 专用服务器无需帮助即可解决此问题将不胜感激。

Linux 链接器错误 unreal-engine5 assimp

评论


答:

0赞 KimKulling 5/2/2023 #1

您需要确保链接器能够访问相关的 shared-object-library assimp.so

71>ld.lld : error : cannot open C:/<project dir>/Plugins/UE4_Assimp/Source/ThirdParty/UE_AssimpLibrary/assimp/bin\libassimp.so: The file cannot be accessed by the system.

我的问题是为什么找不到so文件是你路径中的反斜杠。尝试修复这个应该对你有所帮助。

评论

0赞 Zi1mann 5/2/2023
我也对反斜杠持怀疑态度。但是,我不知道这是从哪里来的,也不知道该如何解决。该文件是从 wsl 复制的 - 我会再次研究它。