摘要
本文记录了 AirSim 1.8.1 与 UE4.27.2 的环境配置及 Blocks 项目编译过程中遇到的问题。通过确认版本、重新编译 AirSim,并使用 UE4 的Build.sh手动编译BlocksEditor,最终成功完成AirSim和Blocks模块的编译,并解决了 UE4 启动时提示模块缺失的问题。
具体报错内容如下:
如下airsim 报错The following moudles are missing or built with a different engine version:Blocks Airsim.Would you like to rebuild them now
Engine moudles are out of date ,and cannot be compiled while the engine is running ,Please build through your IDE
1. 确认版本
重新下载并编译 AirSim 1.8.1 后,启动 UE4 打开 Blocks 项目时,仍然出现Missing Blocks Modules,一开始怀疑是 AirSim 与 UE4 版本不匹配。
检查 UE4 版本:
cat /mnt/win_e/UE4_27/UnrealEngine/Engine/Build/Build.version确认:
UE4.27.2检查 AirSim 版本:
cd /mnt/win_e/AirSim/AirSim-1.8.1 git describe --tags --exact-match git rev-parse --short HEAD确认:
v1.8.1 96235148因此确认UE4.27.2 与 AirSim v1.8.1 版本匹配。
2. 编译 BlocksEditor
关闭 UE4Editor,在 UE4 源码目录下执行:
cd /mnt/win_e/UE4_27/UnrealEngine ./Engine/Build/BatchFiles/Linux/Build.sh \ BlocksEditor Linux Development \ -Project="/mnt/win_e/AirSim/AirSim-1.8.1/Unreal/Environments/Blocks/Blocks.uproject"编译成功:
[4/6] Link (lld) libUE4Editor-AirSim.so [5/6] Link (lld) libUE4Editor-Blocks.so [6/6] UnrealBuildTool.exe BlocksEditor.target Total execution time: 45.59 seconds编译过程中出现部分 PhysX deprecated warning,但不影响编译。
3. 确认 Blocks.uproject
find /mnt/win_e/AirSim/AirSim-1.8.1/Unreal/Environments \ -name "Blocks.uproject" -o -name "*.uproject"确认:
/mnt/win_e/AirSim/AirSim-1.8.1/Unreal/Environments/Blocks/Blocks.uproject使用绝对路径启动:
### 摘要
本文记录了 AirSim 1.8.1 与 UE4.27.2 的环境配置及 Blocks 项目编译过程中遇到的问题。通过确认版本、重新编译 AirSim,并使用 UE4 的 `Build.sh` 手动编译 `BlocksEditor`,最终成功完成 `AirSim` 和 `Blocks` 模块的编译,并解决了 UE4 启动时提示模块缺失的问题。
/mnt/win_e/UE4_27/UnrealEngine/Engine/Binaries/Linux/UE4Editor \ /mnt/win_e/AirSim/AirSim-1.8.1/Unreal/Environments/Blocks/Blocks.uproject最终解决Missing Blocks Modules问题。
4. 问题总结
问题并非AirSim 1.8.1 与 UE4.27.2 版本不匹配,而是Blocks和AirSimUnreal 模块没有针对当前 UE4.27.2 Editor 完成编译。
关闭 UE4Editor 后,通过Build.sh编译BlocksEditor,成功生成:
libUE4Editor-AirSim.so libUE4Editor-Blocks.so重新启动 Blocks 项目后,问题解决。