别再被版本坑了!手把手教你用VS2019+UE4.24在Windows 10上搞定AirSim 1.3.1编译

张开发
2026/4/18 2:25:43 15 分钟阅读

分享文章

别再被版本坑了!手把手教你用VS2019+UE4.24在Windows 10上搞定AirSim 1.3.1编译
别再被版本坑了手把手教你用VS2019UE4.24在Windows 10上搞定AirSim 1.3.1编译机器人仿真开发中最令人头疼的莫过于环境配置问题。当你的系统同时安装了多个版本的Visual Studio和Unreal Engine时编译AirSim就像在雷区行走——稍有不慎就会引发一连串难以排查的错误。本文将带你绕过这些陷阱从环境隔离到精确编译一步步构建稳定的AirSim开发环境。1. 环境准备锁定正确的工具链在开始之前请确保你的系统满足以下硬性要求操作系统Windows 10版本1903或更高Visual Studio2019必须包含使用C的桌面开发工作负载Windows SDK10.0.18362或更高Unreal Engine4.24精确版本注意即使安装了更高版本的UE4如4.25AirSim 1.3.1仍必须使用4.24版本这是经过验证的稳定组合。1.1 检查工具链版本打开PowerShell运行以下命令验证关键组件# 检查Visual Studio安装路径 Get-ChildItem C:\Program Files (x86)\Microsoft Visual Studio\2019 -Filter MSBuild.exe # 确认Windows SDK版本 Get-ChildItem C:\Program Files (x86)\Windows Kits\10\bin | Select-Object Name如果发现多个版本共存建议通过Visual Studio Installer暂时卸载冲突版本或使用接下来介绍的环境隔离方案。2. 构建下载加速方案原始build.cmd直接从GitHub拉取依赖速度可能只有10KB/s。我们可以通过镜像源加速下载2.1 修改build.cmd下载链接找到AirSim源码中的build.cmd替换以下关键资源链接原始链接加速镜像链接https://github.com/rpclib/rpclib/archive/v2.2.1.ziphttps://ghproxy.com/https://github.com/rpclib/rpclib/archive/v2.2.1.ziphttps://github.com/Microsoft/AirSim/releases/download/v1.2.0/car_assets.ziphttps://ghproxy.com/https://github.com/Microsoft/AirSim/releases/download/v1.2.0/car_assets.zip提示镜像链接可能随时间失效建议自行搭建或寻找稳定镜像源2.2 使用本地缓存进阶对于团队开发可以预先下载所有依赖项到本地服务器# 示例使用wget批量下载 wget -i dependencies.txt -P ./local_cache然后在build.cmd中将所有https://github.com替换为file:///path/to/local_cache3. 多版本环境下的精确编译这是最关键的环节——当系统存在多个VS和UE4版本时必须显式指定工具链。3.1 强制指定UE4版本修改update_from_git.bat确保调用正确的UnrealBuildTool路径echo off SET UE4_PATHF:\Program Files\Epic Games\UE_4.24 %UE4_PATH%\Engine\Binaries\DotNET\UnrealBuildTool.exe -projectfiles ^ -project%~dp0Unreal\Environments\Blocks\Blocks.uproject -game -rocket -progress ^ -log%~dp0Unreal\Environments\Blocks/Saved/Logs/UnrealVersionSelector.log -2019关键参数说明-2019强制生成VS2019解决方案UE_4.24精确指向4.24引擎目录3.2 环境变量隔离方案对于长期多版本开发建议创建版本隔离环境# 临时设置环境变量仅当前会话有效 $env:UE4_ROOT F:\Program Files\Epic Games\UE_4.24 $env:VS2019_DIR C:\Program Files (x86)\Microsoft Visual Studio\2019\Community将这些设置保存为airsim_env.ps1每次编译前执行即可。4. 常见编译错误解决方案即使按照上述步骤操作仍可能遇到一些典型问题4.1 LNK2005重复符号错误这通常是由于运行时库冲突导致。在Visual Studio中右键项目 → 属性C/C → 代码生成 → 运行时库 → 选择/MDdDebug或/MDRelease确保所有依赖项使用相同设置4.2 缺失头文件如果出现cannot open include file: Eigen/Dense等错误需要手动设置包含路径set INCLUDE%INCLUDE%;D:\AirSim\AirLib\deps\eigen3;D:\AirSim\AirLib\deps\rpclib\include4.3 Python绑定问题编译Python客户端时确保使用Python 3.6-3.83.9可能不兼容安装pybind11pip install pybind115. 验证编译结果成功编译后通过以下步骤验证AirSim是否正常工作启动Unreal Editor打开Blocks项目点击播放按钮应该能看到默认场景在Python中测试客户端连接import airsim client airsim.MultirotorClient() client.confirmConnection() print(client.getServerVersion())如果输出类似v1.3.1的版本信息恭喜你完成了最棘手的环境搭建6. 开发环境优化建议长期使用AirSim开发时这些技巧能提升效率使用符号链接管理引擎版本# 创建UE4.24的快捷访问路径 New-Item -ItemType SymbolicLink -Path C:\UE4-AirSim -Target F:\Program Files\Epic Games\UE_4.24预编译第三方库将Eigen、rpclib等编译为静态库减少重复编译时间启用CCache加速在CMake配置中添加set(CMAKE_CXX_COMPILER_LAUNCHER ccache)使用Docker隔离可选对于纯净环境可以考虑容器化方案FROM mcr.microsoft.com/windows:20H2 RUN choco install visualstudio2019community --package-parameters--add Microsoft.VisualStudio.Workload.NativeDesktop记住每次升级系统或开发工具时都要重新验证环境兼容性。建议使用虚拟机快照功能保存稳定状态。

更多文章