Windows10下源码编译搭建Carla环境

本文详细介绍了在Windows10上从源码编译构建Carla仿真环境的步骤,包括所需软件版本、安装过程和常见错误处理。主要涉及CMake、Git、Make、Python、VisualStudio2017和UnrealEngine4.24.3的安装,以及源码克隆、场景资源下载和编译服务端与客户端的详细过程。在编译过程中,作者列出了可能出现的错误和解决方案,帮助读者解决编译问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows10下源码编译搭建Carla环境


首先,本教程针对的是Carla 0.9.10版本,从0.9.11版本开始,Carla开始使用专属的虚幻引擎,也就是对原版的引擎进行了一些针对性的修改,因此不能直接用Epic商城下载的引擎来运行0.9.11及以上的Carla环境,相比之下0.9.10或往下的版本,依旧兼容Epic官方提供的虚幻引擎版本,因此下载安装更方便。此外本教程大部分内容是基于Carla官方文档编写的: Windows build - CARLA Simulator,大家也可以参考。

其次,对编译部分报错内容的描述和解决方法我自己也搜索了很多,再加上了自己的一些理解,但肯定有遗漏和不严谨的地方,欢迎大家给予纠正。

相关软件安装

需要的软件及版本

  • CMake–3.19.0
  • git–2.36.1
  • Make–3.81
  • Python–3.7.8
  • Visual Studio–2017
  • Unreal Engine–4.24.3
  • 留个100GB左右的磁盘空间来安装上述软件

安装CMake

安装Git

安装Make

  • 下载地址:Make for Windows
  • 对应版本如图所示,点击Setup下载安装程序:
    在这里插入图片描述
  • 运行安装程序,选择一个目录进行安装:
    在这里插入图片描述
  • 安装完成后,进入安装目录(以我的为例) D:\Make\GnuWin32\bin,并复制该路径,打开环境变量设置页面(打开方法),在系统环境变量Path中输入复制的路径。
  • 完成了上述三个软件的安装后,我们的环境变量Path中应该已经有了如下路径:
    在这里插入图片描述

安装Python

  • 下载地址:Download Python

  • 选择版本,点击Download进入下载页面,选择 Windows x86-64 embeddable zip file进行下载:
    在这里插入图片描述

  • 具体安装过程可参考:超详细的Python安装和环境搭建教程_Pymili的博客

  • 安装完成后要确保Python已加入到环境变量中。

  • 打开cmd分别输入下面两行代码,判断输出的两个python版本是否一致,不一致说明你电脑不止一种python环境,一定要让它们一致,不然后期编译过程中会出现问题。

     py -v
     python -v
    

安装Visual Studio 2017

由于本人此前已安装过VS2019,因此只需要在此基础上加装VS2017,如果是新安装,可参考Visual Studio 2017下载地址和安装教程,安装完成后,打开Visual Studio Installer:
在这里插入图片描述
根据Caral官方文档,我们的VS2017有几个组件是必须要安装的,在Installer页面选择并点击VS2017版本对应的“修改”按钮:
在这里插入图片描述
进入修改页面,在工作负荷中勾选C++桌面开发:
在这里插入图片描述
在单个组件页面搜索 Windows8.1 SDK并勾选:
在这里插入图片描述
选择完成后,点击下方的“修改”按钮,系统就开始为你下载安装(如果用代理服务器下载速度会更快一些):
在这里插入图片描述

安装Unreal Engine

安装Unreal Engine(虚幻引擎),需要先下载Epic游戏客户端,还没有下载的小伙伴,可以在这里进行下载安装。安装完成后打开客户端:
在这里插入图片描述
打开 Epic Games Launcher,先别看游戏了,点击“虚幻引擎”,然后在右侧点击“库”进入引擎版本管理界面:
在这里插入图片描述
点击“引擎版本”右侧的加号,选择4.24.3版本后点击安装(我这里已经安装过了):
在这里插入图片描述
为了在carla与虚幻引擎之间建立连接,我们还需要将虚幻引擎安装目录添加到系统环境变量当中,首先找到自己虚幻引擎安装的目录并复制路径,比如我的在这里:
在这里插入图片描述
打开系统环境变量,创建变量UE4_ROOT,值为刚复制的路径,添加后如下:
在这里插入图片描述

源码编译

Git克隆仓库

进入要安装Carla的目录,鼠标右键选择“Git Bash Here”,输入以下代码:

git clone https://github.com/carla-simulator/carla --branch 0.9.10

点击回车后,git就会开始拉取Carla代码仓库0.9.10分支中的代码,耐心等待:
在这里插入图片描述

注意!从Carla 0.9.12 开始,需要把Epic账户与github账户进行绑定才能进行git clone操作,因此克隆新版本时这里会多一个绑定的步骤。

下载场景资源

包含小镇模型,还有各种车辆、人物模型,各种蓝图类等。

  • 下载地址: carla 0.9.10 场景资源 ,下载文件12GB左右,如果嫌下载速度慢可以用代理服务或者用我在文末分享的下载好的数据,如果需要下载其他版本的资源,可在 carla安装目录/Util/ContentVersions.txt 文件里寻找。
  • 下载完成后解压文件,文件内容大概这样:
    在这里插入图片描述
  • 将解压后的内容复制到:Carla安装目录/Unreal/CaralaUE4/Content/Carla文件夹下,如果没有Carla文件夹,请新建一个,具体如下(图中carla就是我的安装目录,这里的安装目录指的是我们上一步git克隆仓库的目录):
    在这里插入图片描述

开始编译

现在一切准备就绪,因为前期做了很多工作,也包括系统环境变量的更改,因此建议先重启一下电脑。重启以后,进入编译步骤,也是出错最多的步骤。

  • 首先介绍一下编译用到的命令行工具,叫“适用于VS2017的本机工具命令提示”,如下图所示,我们的make命令需要在这里输入。有时候我们需要以管理员身份启动该工具,这时鼠标右键点击“以管理员身份运行”即可。
    在这里插入图片描述
    有时候我们还需要在某个目录下使用命令工具,这时先启动工具,再用cd方法更换工作目录:
    在这里插入图片描述
编译服务端

这里的服务端其实就是UE的编辑器,但编辑器嵌入了Carla服务,当播放某个场景时,Carla服务就会随机启动,这时我们就可以通过代码给这个服务端口发送指令,Caral服务器接受指令后,就把处理结果展示在编辑器上。

  • 以管理员身份启动上一步介绍的命令行工具,进入Carla根目录(安装目录,下文我统一使用F:/carla作为根目录),输入以下命令
    make launch
    
  • 从这到编译结束可能会报各种各样的错误,下面我会给出我遇到的几个问题以及解决方法,若有其他问题可在评论区留言或自行搜索,如果可以的话,建议全程开启代理服务。
错误一
  • 描述

    CMake Error: The source directory “F:/carla/Build/zlib-source” does not appear to contain CMakeLists.txt.

  • 截图
    在这里插入图片描述

  • 报错原因

    • zlib下载失败了,因为按理来说zlib下载完成后,carla/Build/zlib-source目录下有CMakeLists.txt才对,编译之前carla会下载编译过程中会用到的工具包并自动解压放在Build目录下,zlib就是其中一个工具。
  • 解决方法

    • 目前我的解决方法是直接人工下载对应数据包并放在相应位置,当然网上还有一种方法是修改 carla/Util/InstallersWin/install_zlib.bat文件内容,大家也可以研究一下,若成功了,可在评论区分享一下。
    • 首先在zlib官方下载zlib-1.2.11:Index of /fossils (zlib.net)
    • carla/Build下创建新文件夹:zlib-source,当然上一步报错之前应该创建好这个文件夹,只是没下载成功。
    • 解压下载的文件将文件夹zlib-1.2.11里的所有内容复制到zlib-source目录下。
    • 重新运行 make launch,这时编译应该能顺利运行一会儿。
错误二
  • 描述

    CMake Error: The source directory “F:/carla/Build/gtest-src” does not appear to contain CMakeLists.txt.

  • 截图
    在这里插入图片描述

  • 报错原因

    • 这个错误类似于错误一,也是数据下载有问题,因为GoogleTest这个包需要从github下载,如果各位小伙伴无法连接github,那么就会报这个错误。
  • 解决方法

    • 我已经帮大家下载好了,放在文末分享里了。
    • 同样,将gtest-src文件夹放在Buid目录下:
      在这里插入图片描述
  • 在此运行 cmake lauch,问题应该解决了,编译成功后会生成gtest-install,可以耐心等一会,大概率会迎来下一个错误。

错误三
  • 描述

    -[install_boost]: [BOOTSTRAP ERROR] An error ocurred while executing “bootstrap.bat”.

  • 截图
    在这里插入图片描述

  • 报错原因

    • 在解压boost_1.72.0.zip文件时出错,因为Build目录下没这个文件,可以推测在下载的时候出错没下载成功。
  • 解决方法

    • 在官网下载boost_1.72.0.zip: Index of main/release/1.72.0/source
    • 把压缩包直接放在Build目录下,不用解压。
    • 再次运行 make launch,如果显示以下内容,说明我们又成功解决了一个问题,接下来可能要运行一会儿,请耐心等待

在这里插入图片描述

错误四
  • 描述

    UnrealBuildTool: ERROR: Could not find NetFxSDK install dir; this will prevent SwarmInterface from installing. Install a version of .NET Framework SDK at 4.6.0 or higher.

  • 截图
    在这里插入图片描述

  • 报错原因

    • 电脑没有安装 .NET Framework SDK。
  • 解决方法

    • 打开Visual Studio Installer,选择VS2017点击修改,添加4.6.0以上的版本即可:
      在这里插入图片描述
编译结束

不出意外的话,经过了漫长的等待,编译应该成功结束:
在这里插入图片描述
系统会自动启动虚幻引擎编辑器:
在这里插入图片描述

如果你的编辑器在运行时帧率很低,可以在 /编辑器/编辑器偏好设置/性能 设置里勾选处于背景中时占用较少CPU

编译客户端

虽然我们的客户端现在已经能够正常启动了,但是我们还无法与它产生交互,也不能使用pythonAPI里的示例代码,因为这种交互需要借助carla的python包来建立用户指令与服务器间的桥梁,只当我们安装这个包并在代码文件中使用import carla导入时,才能使用carla提供的各种接口。下面的操作最终目的就是得到carla的python包:carla-0.9.10-py3.7-win-amd64.egg

  • 同样以管理员身份启动VS2017命令行工具,进入Carla根目录,执行以下代码:
    make PythonAPI
    
  • 这次编译相较于上一步出错率低一些,全程耐心等待即可,当然我也分享了自己遇到的几个问题以及解决方法,若有其他问题可在评论区留言和大家一起解决。
错误一
  • 描述

    无法打开包括文件: “png.h”: No such file or directory
    error: command ‘D:\Visual Studio\17\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe’ failed with exit code 2

  • 截图
    在这里插入图片描述

  • 报错原因

    • 不存在png.h文件,应该是在编译客户端时出的错,只是当时我们并没发现,与编译客户端时报的其他错误类似,,下载libpng时出错没下载成功,导致编译所需的文件不在,大家可以去Build目录下的libpng-1.2.37-source文件夹里看看,里面的build文件夹应该是空的。
  • 解决方法

    • 人工下载libpng,把文件复制到相应的目录,下载地址:GnuWin /libpng/1.2.37,选择libpng-1.2.37-src.zip并下载。
    • 解压文件,将src里的libpng文件夹复制到 /carla/Build/libpng-1.2.37-source目录下,不存在可新建。并删除 /carla/Build/libpng-1.2.37-install文件夹,重新运行make launch。
    • 这时会在 /carla/Build/libpng-1.2.37-install/include目录下生成png.h文件。
    • 重新运行 make PythonAPI,该问题已解决,即将迎来下一个问题。
错误二
  • 描述

    无法打开包括文件: “OSM2ODR.h”: No such file or directory
    error: command ‘D:\Visual Studio\17\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe’ failed with exit code 2

  • 截图
    在这里插入图片描述

  • 报错原因

    • 最后报的错并不是程序出错真正原因,大家可以翻阅编译记录,可以发现其实中途就报了一个错误: 在这里插入图片描述
    • 下载XercesC失败,同样也是在编译客户端时出的错,应该当时也没被发现,这个包的下载任务对应的是carla/Util/InstallersWin/install_xercesc.bat文件,由于文件中指定的3.2.3版本目前官网已不提供下载了。
  • 解决方法

    • 可以用记事本打开bat文件,把其中的版本换成3.2.4:

      set XERCESC_VERSION=3.2.4
      
    • 运行bat文件,会在当前目录下载xerces-c-3.2.4-installxerces-c-3.2.4-source两文件夹,把这两个复制到Build目录下,并重命名为xerces-c-3.2.3-installxerces-c-3.2.3-source,把之前改的bat文件也改回原来的样子,重新运行 make lauch。

错误三
  • 描述

    build\lib.win-amd64-3.9\carla\libcarla.cp39-win_amd64.pyd : fatal error LNK1120
    error: command ‘D:\Visual Studio\17\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe’ failed with exit code 1120

  • 截图
    在这里插入图片描述

  • 报错原因

    • 暂时没搞清楚这个问题的原因,遇到该问题的小伙伴可以试试重装VS2017、删除其他VS版本残留的信息、检查电脑是否装有多个Python环境(检查方法在安装Python时讲过)等方法,或者直接make rebuild重新从服务端开始编译。
错误四
  • 描述

    无法打开包括文件: “OSM2ODR.h”: No such file or directory
    error: command ‘D:\Visual Studio\IDE 2017\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe’ failed with exit code 2

  • 截图
    在这里插入图片描述

  • 报错原因

    • 报错内容与二相同,但原因应该不同,根据报错提示,我们去查看f:\carla\pythonapi\carla\source\libcarla\OSM2ODR.cpp文件会发现其中有一行include <OSM2ODR.h>的代码,出错原因就是虽然包含了头文件,但并没找到该文件。
  • 解决方法

  • 重新编译一下osm2dor,在carla根目录输入:

    make osm2odr
    
  • 编译完成后,再次运行 make PythonAPI,按理来说最终能成功生成我们要安装的Python包:
    在这里插入图片描述

    • 可以看到在对应的目录里,已经有carla的egg包了: 在这里插入图片描述
  • 安装egg包

    • 先安装easy_install:

      pip install easy_install
      
    • 在egg文件所在目录打开cmd,运行以下代码:

      easy_install carla-0.9.10-py3.7-win-amd64.egg
      
  • 若看到以下字符,说明安装成功:
    在这里插入图片描述

编译结束

至此,第二部分的编译也成功结束,如果卡在这部分的小伙伴上述方法都不管用的话,可以直接安装我在文末提供的carla-0.9.10-py3.7-win-amd64.egg但要确保环境与我的一致,如python3.7.8,carla 0.9.10等,否则会不兼容。

相关资源分享

这里分享了我下载好的Carla场景资源包以及编译过程中可能用到的数据包:

### 如何在 Carla安装 Boost 库 为了确保 Carla 的顺利运行以及相关功能模块的正常使用,安装合适的 Boost 版本至关重要。以下是基于官方文档和其他资源整理的操作指南。 #### 准备工作 确认操作系统版本与依赖项已满足 Carala 安装需求。对于 Ubuntu 用户来说,推荐使用 20.04 LTS 或更高版本[^1];而对于 Windows 用户,则需遵循特定配置来设置开发环境,包括但不限于 Visual Studio 和其他工具链的选择[^3]。 #### 获取并编译 Boost 源码 考虑到兼容性和性能优化方面的要求,在某些情况下可能需要手动下载指定版本号的 Boost 源文件,并通过命令行完成自定义构建过程: ```bash # 下载所需版本的 boost 压缩包 (此处以boost_1_74_0为例) wget https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz tar xfz boost_1_74_0.tar.gz cd boost_1_74_0/ ./bootstrap.sh --with-libraries=system,filesystem,thread,date_time,program_options,regex,test --prefix=/usr/local sudo ./b2 install ``` 上述脚本适用于 Linux 平台上的操作流程,其中 `--with-libraries` 参数指定了要编译的具体库列表,而 `--prefix` 则设定了最终头文件和静态库的目标路径。 对于 Windows 系统而言,可以通过预编译二进制分发版简化此步骤,或者利用 vcpkg 进行管理: ```powershell vcpkg install boost:x64-windows-static-md ``` 这将自动处理所有必要的依赖关系并将结果放置于适当位置以便后续项目引用[^2]。 #### 修改 Carla 构建选项 当完成了 Boost 的本地部署之后,还需要调整 Carla 的 CMakeLists.txt 文件或其他相关配置文件中的变量设定,使得其能够正确找到新安装好的第三方组件。通常涉及如下几处改动: - 设置 BOOST_ROOT 变量指向实际解压后的根目录; - 如果采用动态链接方式,则还需额外提供 BOOST_LIBRARYDIR 来指示 .lib/.dll 所存之处; - 对于 Python API 支持部分,记得同步更新 PYTHONPATH 让解释器识别到新增加的支持函数库。 以上修改完成后重新执行 cmake .. && make -j$(nproc),即可让 Carla 成功集成所需的 Boost 功能特性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值