别再被版本坑了!手把手教你用VS2019和UE4.24在Win10上搞定AirSim 1.3.1编译
每次打开电脑准备开始AirSim项目,总有种打开潘多拉魔盒的预感——不知道今天又会遇到什么稀奇古怪的编译错误。如果你也曾在VS2017和VS2019之间反复横跳,在UE4.22和4.24版本中迷失方向,那么这篇文章就是为你准备的生存指南。
1. 环境准备:构建坚不可摧的基础
在开始编译之前,我们需要确保所有工具链的版本完全匹配。就像乐高积木,看似兼容的零件如果型号不对,最终成品总会缺那么一块。
1.1 必备工具清单
- Visual Studio 2019(版本16.11或更高)
- Unreal Engine 4.24(精确到小版本号)
- Windows 10 SDK 10.0.18362(不是更高也不是更低)
- AirSim 1.3.1源码(从官方GitHub仓库获取)
注意:即使安装了更高版本的VS2022或UE5,也必须使用上述指定版本组合,这是经过无数次验证的黄金搭配。
1.2 环境变量配置
正确的环境变量设置可以避免80%的版本冲突问题。打开系统属性→高级→环境变量,确保以下路径优先级正确:
| 变量名 | 推荐值 |
|---|---|
| Path | C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64 优先 |
| UE_ROOT | 指向UE4.24安装目录(如F:\Epic Games\UE_4.24) |
powershell复制# 快速检查VS2019工具链是否生效
cl.exe /?
# 应显示Microsoft (R) C/C++ Optimizing Compiler Version 19.29.301XX
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 源码获取与加速技巧
直接从GitHub克隆AirSim仓库是最简单的方式,但国内开发者常遇到下载速度慢的问题。以下是我总结的几种解决方案:
2.1 第三方镜像加速
修改build.cmd中的资源链接是最直接的方法。例如将:
cmd复制set RPCLIB_URL=https://github.com/rpclib/rpclib/archive/v2.2.1.zip
替换为国内镜像站:
cmd复制set RPCLIB_URL=https://mirror.example.com/rpclib-v2.2.1.zip
2.2 手动下载替代
如果镜像站不可用,可以:
- 先让脚本运行直到报错
- 从错误信息中找到缺失的文件
- 手动下载后放入指定目录
- 重新运行脚本
3. 强制指定工具链版本
这是最关键的步骤,也是大多数开发者踩坑的地方。当系统安装了多个VS和UE4版本时,必须显式指定使用哪些工具。
3.1 修改UnrealBuildTool调用
找到update_from_git.bat,将其中的UnrealBuildTool调用改为:
cmd复制"F:\Epic Games\UE_4.24\Engine\Binaries\DotNET\UnrealBuildTool.exe" -projectfiles ^
-project="E:\AirSim\Unreal\Environments\Blocks\Blocks.uproject" -game -rocket -progress ^
-log="E:\AirSim\Unreal\Environments\Blocks\Saved\Logs\UBT.log" -2019
关键修改点:
- 明确指向UE4.24目录下的UnrealBuildTool
- 添加
-2019参数强制使用VS2019 - 使用
^代替\作为换行符(Windows批处理语法)
3.2 验证编译环境
编译前运行以下命令检查环境:
powershell复制# 检查VS工具集
vswhere.exe -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
# 检查Windows SDK版本
Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows Kits\Installed Roots" | Select-Object Name
4. 常见错误与解决方案
即使按照上述步骤操作,仍可能遇到一些棘手问题。以下是几个典型错误及其解决方法:
4.1 LNK1181错误:无法打开输入文件
code复制error LNK1181: cannot open input file 'Msvcurt.lib'
解决方法:
- 打开VS2019安装程序
- 添加"MSVC v142 - VS2019 C++ x64/x86生成工具"组件
- 确保不勾选任何与VS2017兼容的选项
4.2 UE4编辑器崩溃
如果UE4编辑器在加载项目时崩溃,尝试:
- 删除
Saved、Intermediate和Binaries目录 - 右键
.uproject文件→"Generate Visual Studio project files" - 使用管理员权限运行UE4Editor.exe
4.3 第三方库编译失败
对于rpclib等第三方库的编译问题,可以尝试:
cmd复制# 在AirSim目录下手动编译rpclib
cd external\rpclib
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64
cmake --build . --config Release
5. 终极检查清单
在按下编译按钮前,最后确认以下事项:
- [ ] VS2019已安装"使用C++的游戏开发"工作负载
- [ ] Windows 10 SDK 18362已安装
- [ ] 系统PATH变量中VS2019路径优先于其他VS版本
- [ ] 所有批处理文件中的路径都已更新为实际安装位置
- [ ] 防火墙未阻止UnrealBuildTool和git进程
记住,环境配置就像调音——微小的偏差都会导致整个系统走调。花时间确保每个环节准确无误,最终会为你节省数小时的调试时间。
