做研究需要个仿真,从0写OpenGL即浪费时间又不好看,就想使用Airsim做仿真,编译过程中遇到了好多问题,花了很多时间解决,最终终于解决了。
这些问题存在的主要原因就是存在多个版本的VS和多个版本的虚幻引擎。
切记,在Windows下编译airsim需要的是VS2019,最低Windows 10 SDK 10.0.18362,最低虚幻4.24。这几个条件不能换,用了VS2017就失败,o(╥﹏╥)o。
下面对我编译过程中遇到的几个问题进行说明。
1 build.cmd下载慢
build.cmd下载慢的主要原因就是其直接下载github某些库的release版本,github的release下载巨慢,最快也就是10kb/s,所以我们需要对这些源码进行修改。
比如,在build.cmd里面,需要rpclib的下载地址如下
https://github.com/rpclib/rpclib/archive/v2.2.1.zip
我自己专门从第三方网站https://d.serctl.com/对这个连接进行下载,并对其进行替换新的下载地址
https://dl.serctl.com/downloads3/2020-08-10-19-53-53-rpclib-v2.2.1.zip
其他类似,这样下载速度很快,编译airsim很快就完成了。
下面我把我替换的网址列出来(因为第三方网站可能会清理,不知何时会失效)。
原始链接。
https://github.com/rpclib/rpclib/archive/v2.2.1.zip
https://github.com/Microsoft/AirSim/releases/download/v1.2.0/car_assets.zip
替换后的链接。
https://dl.serctl.com/downloads3/2020-08-10-19-53-53-rpclib-v2.2.1.zip
https://dl.serctl.com/downloads3/2020-08-10-19-55-10-download-car_assets.zip
2. 编译示例项目Block出错
编译这个项目直接执行update_from_git.bat
生成的工程编译出来一大堆错误,研究了很久,终于发现了问题。
我的系统存在VS2015,VS2017,VS2019,和虚幻4.22和4.24,导致在编译的时候版本选择错误,我这里系统默认选择了虚幻4.22和VS2017进行编译,因此编译错误。
解决办法!!!!!!!!!!!!!!!!!!!!(我真的搞了好久)
update_from_git.bat
最后调用UnrealBuildTool.exe
对UE4项目转换为VS工程,系统使用的指令是。
"F:/Program Files/Epic Games/UE_4.22/Engine/Binaries/DotNET/UnrealBuildTool.exe" -projectfiles \
-project="E:/Codes/AirSim-1.3.1-windows/Unreal/Environments/Blocks/Blocks.uproject" -game -rocket -progress \
-log="E:\Codes\AirSim-1.3.1-windows\Unreal\Environments\Blocks/Saved/Logs/UnrealVersionSelector-2020.08.10-22.59.28.log"
(这样能对就见鬼了)
如果想正确编译,必须手动输入指令,强制使用4.24和VS2019进行编辑,重点内容如下
"F:/Program Files/Epic Games/UE_4.24/Engine/Binaries/DotNET/UnrealBuildTool.exe" -projectfiles \
-project="E:/Codes/AirSim-1.3.1-windows/Unreal/Environments/Blocks/Blocks.uproject" -game -rocket -progress \
-log="E:\Codes\AirSim-1.3.1-windows\Unreal\Environments\Blocks/Saved/Logs/UnrealVersionSelector-2020.08.10-22.59.28.log" \
-2019
核心有两点
- 指定UnrealBuildTool.exe的路径
- 在最后加上
-2019
强制转换为VS2019工程
这样再编译,所有错误都消失了,问题解决!!!!!!!!
我哭了!!!!!