当前位置: 首页 > article >正文

VS和UE4版本多到打架?一个命令搞定AirSim 1.3.1的正确编译环境

多版本开发环境下的AirSim编译实战指南当你的开发机上同时安装了Visual Studio 2015/2017/2019和Unreal Engine 4.22/4.24等多个版本时编译AirSim 1.3.1就像在雷区中穿行——稍有不慎就会触发各种难以排查的构建错误。本文将带你深入理解多版本环境下的编译机制并提供一套系统化的解决方案。1. 环境冲突的本质与诊断现代开发环境越来越复杂一个典型的游戏开发者工作站可能同时存在Visual Studio2015、2017、2019甚至2022共存Unreal Engine4.22到5.0的多个版本并行安装Windows SDK不同版本混合部署这种环境下的编译失败通常源于版本选择错误。以AirSim 1.3.1为例它严格依赖必须组件 - Visual Studio 2019 (不能是2017或更早) - Windows 10 SDK 10.0.18362 - Unreal Engine 4.24 (不能是4.22或其他版本)当系统默认选择了错误的版本组合时就会出现各种看似毫无关联的编译错误。诊断这类问题的第一步是检查构建日志中的关键信息查找UnrealBuildTool调用的完整命令确认使用的UE4引擎路径版本检查VS工具链版本提示构建日志通常位于项目目录的Saved/Logs/下文件名包含UnrealVersionSelector和时间戳2. 强制指定构建环境的实战方案2.1 手动调用UnrealBuildTool原始构建脚本可能错误地选择了环境版本此时需要手动调用正确的UnrealBuildTool.exe并明确指定参数# 强制使用UE4.24和VS2019的构建命令模板 你的UE4.24安装路径\Engine\Binaries\DotNET\UnrealBuildTool.exe -projectfiles -project你的AirSim项目路径\Blocks.uproject -game -rocket -progress -log日志文件路径.log -2019关键参数说明参数作用必需性-projectfiles生成VS工程文件必选-project指定.uproject文件路径必选-2019强制使用VS2019工具链必选-log指定日志输出路径可选2.2 环境变量配置方案对于需要频繁构建的场景建议设置系统环境变量来固定版本选择设置UE版本# 设置默认UE4版本为4.24 [System.Environment]::SetEnvironmentVariable(UE4_ROOT, F:\Epic Games\UE_4.24, Machine)指定VS工具集 在项目目录下创建DefaultEngine.ini文件并添加[BuildConfiguration] WindowsCompilerVisualStudio2019验证环境变量# 检查当前环境配置 Get-ChildItem Env: | Where-Object { $_.Name -like *VS* -or $_.Name -like *UE* }3. 构建加速与依赖管理3.1 解决GitHub下载缓慢问题原始build.cmd直接从GitHub下载依赖国内速度极慢。推荐以下优化方案替换下载源 修改build.cmd中的下载链接为国内镜像- https://github.com/rpclib/rpclib/archive/v2.2.1.zip https://ghproxy.com/https://github.com/rpclib/rpclib/archive/v2.2.1.zip本地缓存方案提前下载所有依赖包到本地目录修改构建脚本使用本地路径$depsPath D:\AirSim_Dependencies\ if (Test-Path $depsPath) { Copy-Item $depsPath\* -Destination $buildDir\ -Recurse }3.2 并行构建配置在BuildConfiguration.xml中启用并行编译ParallelExecutor MaxProcesses$(NUMBER_OF_PROCESSORS)/MaxProcesses TimeoutSeconds600/TimeoutSeconds /ParallelExecutor构建时使用msbuild AirSim.sln /p:ConfigurationRelease /m其中/m参数表示启用多核并行编译。4. 系统化的多版本环境管理4.1 UE版本选择器配置在%APPDATA%\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml中添加版本映射BuildConfiguration VersionSelectors Selector NameAirSim Version4.24 / /VersionSelectors /BuildConfiguration4.2 VS工具链管理创建vcvarsall.bat的快捷方式并固定参数echo off call C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat x64 -vcvars_ver14.294.3 项目级环境锁定在项目根目录创建.airsimrc文件[environment] windows_sdk_version10.0.18362.0 vs_version2019 ue4_version4.24 [build] parallel_jobs8 cache_dirD:\AirSim\cache5. 常见问题与解决方案问题1构建时报错MSB8020: The build tools for Visual Studio 2017 cannot be found解决# 明确指定工具集版本 msbuild AirSim.sln /p:PlatformToolsetv142 /p:VisualStudioVersion16.0问题2UE4编辑器无法识别AirSim插件解决步骤确认插件路径为Unreal\Plugins\AirSim检查Blocks.uproject文件包含Plugins: [ { Name: AirSim, Enabled: true } ]重新生成项目文件问题3运行时出现DLL缺失错误解决方案# 安装所有VC运行库 vcredist_x64.exe /quiet /norestart6. 高级调试技巧当遇到难以诊断的构建问题时可以启用详细日志msbuild AirSim.sln /v:diag /fl /flp:verbositydiagnostic检查工具链路径# 验证VS2019工具链路径 Get-ChildItem C:\Program Files (x86)\Microsoft Visual Studio\2019\*\VC\Tools\MSVC\清理中间文件# 彻底清理构建产物 Remove-Item -Recurse -Force Build, Unreal\Binaries, Unreal\Intermediate经过这些系统化的环境配置和管理即使在最复杂的多版本开发环境中也能确保AirSim的编译过程稳定可靠。记住关键在于明确锁定每个构建环节使用的工具版本而不是依赖系统默认选择。

相关文章:

VS和UE4版本多到打架?一个命令搞定AirSim 1.3.1的正确编译环境

多版本开发环境下的AirSim编译实战指南 当你的开发机上同时安装了Visual Studio 2015/2017/2019和Unreal Engine 4.22/4.24等多个版本时,编译AirSim 1.3.1就像在雷区中穿行——稍有不慎就会触发各种难以排查的构建错误。本文将带你深入理解多版本环境下的编译机制&a…...

C#比较两个二进制文件的差异 C#如何实现一个二进制diff工具

FileStream逐字节比对是最直接的文件一致性判断方式:先比长度,再用缓冲区读取并逐字节比对,遇差异立即退出;需注意offset计算、大文件long类型、Dispose释放及避免文本编码干扰。用 FileStream 逐字节比对是最直接的方式如果只是判…...

Python的__getattribute__中的集成框架

Python的__getattribute__方法是对象属性访问的核心机制,它在属性查找过程中扮演着关键角色。通过理解其集成框架,开发者能够更灵活地控制对象行为,实现动态属性管理、数据验证等高级功能。本文将深入探讨这一机制的实现原理与应用场景&#…...

XUnity自动翻译器:5分钟让Unity游戏变身中文版

XUnity自动翻译器:5分钟让Unity游戏变身中文版 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的外语游戏而烦恼吗?XUnity自动翻译器是你的终极解决方案!这…...

如何将闲置电视盒子变身高性能服务器:Amlogic S9xxx Armbian终极指南

如何将闲置电视盒子变身高性能服务器:Amlogic S9xxx Armbian终极指南 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s…...

终极Script Kit指南:探索强大API与核心组件的自动化奥秘

终极Script Kit指南:探索强大API与核心组件的自动化奥秘 【免费下载链接】kit Script Kit. Automate Anything. 项目地址: https://gitcode.com/gh_mirrors/kit1/kit Script Kit是一款功能强大的自动化工具,它提供了丰富的API和核心组件&#xff…...

5分钟快速上手tracetcp:TCP路由追踪工具的终极指南

5分钟快速上手tracetcp:TCP路由追踪工具的终极指南 【免费下载链接】tracetcp tracetcp. Traceroute utility that uses tcp syn packets to trace network routes. 项目地址: https://gitcode.com/gh_mirrors/tr/tracetcp tracetcp是一款专业的TCP路由追踪…...

如何在微服务架构中实现统一授权:Cerbos的终极解决方案

如何在微服务架构中实现统一授权:Cerbos的终极解决方案 【免费下载链接】cerbos Cerbos is the open core, language-agnostic, scalable authorization solution that makes user permissions and authorization simple to implement and manage by writing contex…...

5分钟快速上手:tts-vue微软语音合成工具完全指南 [特殊字符]

5分钟快速上手:tts-vue微软语音合成工具完全指南 🎤 【免费下载链接】tts-vue 🎤 微软语音合成工具,使用 Electron Vue ElementPlus Vite 构建。 项目地址: https://gitcode.com/gh_mirrors/tt/tts-vue 想要将文字转化为…...

Mermaid Live Editor:解决技术文档图表制作的5个核心痛点

Mermaid Live Editor:解决技术文档图表制作的5个核心痛点 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-edi…...

Jable视频下载工具架构深度解析:浏览器扩展与本地协议协同方案

Jable视频下载工具架构深度解析:浏览器扩展与本地协议协同方案 【免费下载链接】jable-download 方便下载jable的小工具 项目地址: https://gitcode.com/gh_mirrors/ja/jable-download Jable视频下载工具通过创新的浏览器扩展与本地协议协同架构,…...

OFA模型与Dify平台集成:可视化构建无代码图像描述AI应用

OFA模型与Dify平台集成:可视化构建无代码图像描述AI应用 你有没有遇到过这样的场景?产品经理或运营同事拿着几张图片跑过来,问你能不能快速做一个“看图说话”的小工具,用来给商品图自动配文案,或者给活动海报生成描述…...

Applite:让Homebrew Casks变得像逛应用商店一样简单

Applite:让Homebrew Casks变得像逛应用商店一样简单 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 你知道吗?在macOS上安装应用其实可以不用打开浏览器…...

ComfyUI-Manager终极指南:5分钟掌握AI绘画扩展管理

ComfyUI-Manager终极指南:5分钟掌握AI绘画扩展管理 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom n…...

深入GD32F450 GPIO寄存器:告别库函数依赖,自己动手配置AF复用与上下拉

深入GD32F450 GPIO寄存器:从库函数到寄存器级精准控制 在嵌入式开发领域,对GPIO的精确控制往往是项目成败的关键因素之一。当你的项目需要处理高频信号、严格时序或超低功耗场景时,标准库函数可能成为性能瓶颈。GD32F450作为一款高性能微控制…...

告别手动刷UDS!用CANoe.Diva Demo工程5分钟上手诊断自动化测试

告别手动刷UDS!用CANoe.Diva Demo工程5分钟上手诊断自动化测试 还在为手动执行UDS诊断测试而烦恼?每次测试都要重复输入相同的指令,既耗时又容易出错。CANoe.Diva的自动化测试功能可以彻底改变这一现状,而它的Demo工程更是新手快…...

Obsidian PDF++插件技术架构:实现原生PDF标注与知识图谱集成

Obsidian PDF插件技术架构:实现原生PDF标注与知识图谱集成 【免费下载链接】obsidian-pdf-plus PDF: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings. 项目地址: https://gitcode.com/gh_mirrors/ob/obs…...

终极网盘直链下载助手:告别限速的完整指南

终极网盘直链下载助手:告别限速的完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅雷…...

从手机到Wi-Fi:拆解你身边那些‘看不见’的射频滤波器(SAW/BAW/陶瓷)

从手机到Wi-Fi:拆解你身边那些‘看不见’的射频滤波器(SAW/BAW/陶瓷) 当你用手机刷视频、连Wi-Fi打游戏时,有没有想过这些无线信号是如何在复杂的电磁环境中保持稳定的?答案就藏在那些米粒大小的射频滤波器里。这些不起…...

拆解IDT7205异步FIFO:从引脚时序到状态机,一个嵌入式老兵的调试笔记

一位嵌入式工程师的IDT7205异步FIFO实战手记 第一次拿到IDT7205这颗异步FIFO芯片时,我本以为按照常规思路就能轻松搞定。然而在实际调试过程中,那些看似简单的时序图背后隐藏着不少"坑"。本文将分享我从零开始理解并成功应用IDT7205的全过程&a…...

AssetRipper终极指南:从游戏资源中提取宝藏的完整实战教程

AssetRipper终极指南:从游戏资源中提取宝藏的完整实战教程 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper 你是否曾经玩过…...

5步掌握SMUDebugTool:AMD Ryzen硬件调试与性能调优完整指南

5步掌握SMUDebugTool:AMD Ryzen硬件调试与性能调优完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https…...

WaveTools终极指南:解锁《鸣潮》120帧的完整解决方案

WaveTools终极指南:解锁《鸣潮》120帧的完整解决方案 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 想要在《鸣潮》中体验丝滑流畅的120帧游戏画面吗?WaveTools鸣潮工具箱正是你需…...

如何快速构建Python金融数据采集系统:完整实战指南

如何快速构建Python金融数据采集系统:完整实战指南 【免费下载链接】pywencai 获取同花顺问财数据 项目地址: https://gitcode.com/gh_mirrors/py/pywencai 在量化投资和金融数据分析领域,获取高质量的金融数据是每个分析师和投资者的核心需求。传…...

NVIDIA Profile Inspector完全指南:免费解锁显卡200+隐藏参数

NVIDIA Profile Inspector完全指南:免费解锁显卡200隐藏参数 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款强大的开源显卡优化工具,能够让你访…...

题解:洛谷 P6033 [NOIP 2004 提高组] 合并果子 加强版

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

Android Studio安装后必做的5件事:从汉化乱码到模拟器提速的完整配置清单

Android Studio安装后必做的5件事:从汉化乱码到模拟器提速的完整配置清单 刚装好Android Studio的兴奋感,往往会在打开IDE的瞬间被各种小问题冲淡——控制台里看不懂的乱码、慢到怀疑人生的模拟器、每次启动都要重新加载的旧项目...这些问题看似微不足道…...

题解:洛谷 B3940 [GESP样题 四级] 填幻方

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…...

Bioicons:如何用3000+免费矢量图标彻底改变科研可视化体验?

Bioicons:如何用3000免费矢量图标彻底改变科研可视化体验? 【免费下载链接】bioicons A library of free open source icons for science illustrations in biology and chemistry 项目地址: https://gitcode.com/gh_mirrors/bi/bioicons 如果你是…...

dotfiles社区资源:如何从其他开发者那里获取灵感

dotfiles社区资源:如何从其他开发者那里获取灵感 【免费下载链接】dotfiles Get started with your own dotfiles. 项目地址: https://gitcode.com/gh_mirrors/dotfiles6/dotfiles dotfiles是开发者个性化工作环境的核心,通过学习开源社区中优秀的…...