掌桥专利:专业的专利平台
掌桥专利
首页

智能驾驶软件的构建方法、装置、设备及存储介质

文献发布时间:2024-05-31 01:29:11


智能驾驶软件的构建方法、装置、设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种智能驾驶软件的构建方法、装置、设备及存储介质。

背景技术

随着车辆的智能化以及网联化的发展,传统汽车行业逐渐向智能驾驶汽车转型,车辆也由传统的交通工具演变成为智能平台。目前智能驾驶汽车企业通常采用QNX系统实现智能驾驶软件的构建与开发,其中QNX系统是包括分布式、嵌入式以及可规模扩展的硬实时操作系统,其同时兼备功能安全以及高可靠性的特征,是当前受到广泛认可的微内核操作系统。

相关技术中,使用QNX系统需要采购QNX许可证,智能驾驶汽车企业需要在研发团队的多个终端配置QNX许可证,开发人员通过配置有QNX许可证的终端实现对智能驾驶软件的构建与开发。但是由于QNX许可证的采购成本高的缘故,企业往往仅在部分终端上配置QNX许可证,导致企业研发团队在对智能驾驶软件的开发过程中存在资源不足的问题。

发明内容

本申请的主要目的在于提供一种智能驾驶软件的构建方法、装置、设备及存储介质,旨在解决相关技术中企业研发团队在对智能驾驶软件的开发过程中资源不足的技术问题。

为实现以上目的,本申请提供一种智能驾驶软件的构建方法,所述智能驾驶软件的构建方法包括:

获取代码仓中的待编译代码,其中,所述代码仓保存有多个用户终端上传的待编译代码;

基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包,其中,所述QNX系统编译环境下的编译脚本是基于QNX许可证所构建的。

可选地,所述获取代码仓中的待编译代码的步骤之前,所述方法包括:

获取QNX许可证,其中,所述QNX许可证的数量为一个;

基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本,以供服务器基于所述QNX许可证实现对多个用户终端上传的待编译代码的编译。

可选地,所述基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本的步骤,包括:

在与所述QNX许可证进行绑定之后,生成QNX系统编译配置;

基于所述QNX系统编译配置,构建服务器的QNX系统编译环境;

获取编译脚本配置;

基于所述编译脚本配置,确定所述QNX系统编译环境下的编译脚本。

可选地,所述基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包的步骤,包括:

将所述待编译代码进行分类,得到多个单模块代码和一个主干代码;

基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码;

将所述目标单模块代码与所述主干代码合并,得到目标代码集合;

对所述目标代码集合执行服务器的本地编译操作,得到目标软件包。

可选地,所述基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码的步骤之后,所述方法包括:

基于所述编译脚本,将所述目标单模块代码进行全量编译,得到全量编译结果;

基于预设的代码门禁,判断所述全量编译结果是否成功编译,其中,所述代码门禁包括预设的编译验证规则;

若所述全量编译结果为编译成功,才执行将所述目标单模块代码与所述主干代码合并,得到目标代码集合。

可选地,所述基于预设的代码门禁,判断所述全量编译结果是否成功编译的步骤之后,所述方法包括:

若所述全量编译结果为编译失败,则生成包括编译失败信息的失败报文,并将所述失败报文发送至用户终端。

可选地,其特征在于,所述基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到目标软件包的步骤,包括:

基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到可执行文件;

在服务器的软件打包环境下,对所述可执行文件进行打包,得到目标软件包,其中,所述软件打包环境与所述QNX系统编译环境一致。

本申请还提供一种智能驾驶软件的构建装置,所述智能驾驶软件的构建装置包括:

获取模块,用于获取代码仓中的待编译代码,其中,所述代码仓保存有多个用户终端上传的待编译代码;

编译模块,用于基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包,其中,所述QNX系统编译环境下的编译脚本是基于QNX许可证所构建的。

本申请还提供一种智能驾驶软件的构建设备,所述智能驾驶软件的构建设备包括:存储器、处理器以及存储在存储器上的用于实现所述智能驾驶软件的构建方法的程序,

所述存储器用于存储实现智能驾驶软件的构建方法的程序;

所述处理器用于执行实现所述智能驾驶软件的构建方法的程序,以实现所述智能驾驶软件的构建方法的步骤。

本申请还提供一种存储介质,所述存储介质上存储有实现智能驾驶软件的构建方法的程序,所述实现智能驾驶软件的构建方法的程序被处理器执行以实现所述智能驾驶软件的构建方法的步骤。

本申请通过在服务器上构建QNX系统编译环境下的编译脚本,实现将编译服务移植至服务器上,利用服务器的高并发能力,在服务器本地对多个用户终端上传的待编译代码进行高效编译,从而实现多人的在线编译,以此提高了资源的利用率,进而解决了企业研发团队在对智能驾驶软件的开发过程中资源不足的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请智能驾驶软件的构建方法第一实施例的流程示意图;

图2为本申请智能驾驶软件的构建方法的系统模块交互示意图;

图3为本申请智能驾驶软件的构建方法的QNX系统编译环境构建流程示意图;

图4为本申请智能驾驶软件的构建方法的软件开发应用场景的流程示意图;

图5为本申请智能驾驶软件的构建方法第二实施例的流程示意图;

图6为本申请智能驾驶软件的构建装置的模块示意图;

图7是本申请实施例方案涉及的硬件运行环境的设备结构示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,图1为本申请智能驾驶软件的构建方法第一实施例的流程示意图。

在第一实施例中,所述智能驾驶软件的构建方法包括以下步骤:

步骤S100,获取代码仓中的待编译代码,其中,所述代码仓保存有多个用户终端上传的待编译代码;

需要说明的是,所述智能驾驶软件的构建方法的执行主体为智能驾驶软件的构建装置,优选地,智能驾驶软件的构建装置为服务器,其中,所述服务器可以是物理服务器,也可以是云服务器,服务器优选使用高性能物理服务器配上固态硬盘,可以最大限度的保障编译速度,从而更好的提升团队协作,提高工作效率。

可理解的是,所述代码仓与多个用户终端保持通信连接,多个用户终端会将本机的待编译代码发送或者上传至该代码仓,该代码仓保存有多个用户终端上传的待编译代码,优选地,所述代码仓包括GitHub、GitLab、Gitee等自动化代码托管工具。

在具体实现中,服务器获取代码仓中的待编译代码的方式可以是用户或者开发人员预先在服务器上配置好拉取代码仓所需要的权限,服务器基于该权限,提取代码仓中的待编译代码;也可以是在代码仓满足设定的代码保存条件后,向服务器发送代码提取请求,以供服务器提取代码仓中的待编译代码,其中代码保存条件包括但不限于待编译代码达到指定数量或者用户下达编译指令。

在具体实现中,服务器获取代码仓中的待编译代码的步骤之前,所述方法包括:

服务器获取QNX许可证,其中,所述QNX许可证的数量为一个;基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本,以供服务器基于所述QNX许可证实现对多个用户终端上传的待编译代码的编译。

需要说明的是,所述QNX许可证即QNX Lisence,该QNX Lisence是使用QNX系统的必要认证物件,只有企业方从正规渠道购置或者采购QNX开发所需要的Lisence(许可证),并在服务器上进行配置绑定,服务器上才能构建QNX系统编译环境以及所述QNX系统编译环境下的编译脚本,以供服务器基于所述QNX许可证实现对多个用户终端上传的待编译代码的编译,从而实现智能驾驶软件的开发团队的多人在线编译。

可理解的是,一台服务器仅需一个许可证,即可构建QNX系统编译环境以及所述QNX系统编译环境下的编译脚本。本申请通过将编译服务移植至服务器,改变了相关技术中传统的一人一机(即一个开发人员使用自己的用户终端)的软件研发思路,利用服务器的高并发能力,有效提高单个Lisence许可证的使用效率,并降低了企业研发成本,以此提高了资源的利用率,进而解决了企业研发团队在对智能驾驶软件的开发过程中资源不足的问题。

在具体实现中,服务器基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本的方法还包括以下步骤:

服务器在与所述QNX许可证进行绑定之后,生成QNX系统编译配置;基于所述QNX系统编译配置,构建服务器的QNX系统编译环境;获取编译脚本配置;基于所述编译脚本配置,确定所述QNX系统编译环境下的编译脚本。

需要说明的是,在企业的开发人员或者用户采购QNX许可证之后,将所述QNX许可证与服务器进行绑定,服务器在绑定QNX许可证后,根据所述QNX许可证的相关协议生成QNX系统编译配置,其中所述QNX系统编译配置用于构建服务器的QNX系统编译环境。

可理解的是,所述编译脚本配置是开发人员根据团队或者项目需求所开发的适配QNX系统编译环境的脚本配置,在开发人员将编译脚本配置发送至服务器后,服务器基于所述编译脚本配置,确定所述QNX系统编译环境下的编译脚本,该编译脚本用于实现后续待编译代码的编译。

步骤S200,基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包,其中,所述QNX系统编译环境下的编译脚本是基于QNX许可证所构建的。

需要说明的是,在服务器上完成预设的QNX系统编译环境下的编译脚本构建后,即在服务器上具备编译服务功能,服务器基于所述QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包。其中,服务器具备高并发能力,在一台服务器上即可实现对多代码任务的编译,并且一台服务器只需要一个QNX许可证,本申请通过服务器实现代码的编译任务,以替代相关技术中终端PC对代码的编译,降低了QNX许可证的采购成本,有效提高单个QNX许可证的使用效率,实现多人在线编译。

本申请提出的智能驾驶ADCU(自动驾驶域控制器)软件编译方案,是一套完整的车载域控软件集成方案,包含了从软件代码提交到流水线产物输出的全过程。具体参照图2,其中该服务器可以是物理服务器,也可以是云服务器,建议使用高性能物理服务器+固态硬盘的方式,可以最大限度的保障编译速度,从而更好的提升团队协作,提高工作效率;代码仓指GitHub、GitLab、Gitee等自动化代码托管工具,需要给服务器配置拉取代码仓所需要的权限来完成代码拉取的动作;在服务器编译完成之后,软件开发人员可以在服务器端直接获取,或者通过上传到制品仓库的方式获取服务器编译所生成的产物,完成之后的验证。

在具体实现中,本申请提出一套完整的线上编译可行性方案,该方案提供了完全可落地、可复制的部署实现方式,具体可以借助CI(持续集成)工具,搭建一套自动化的线上编译环境,从而实现代码一键编译。

作为一个具体实施例,下面以Jenkins(一款开源的持续集成和持续交付工具)为例,简述环境搭建过程。参照图3,首先开发人员通过正规渠道,采购QNX开发所需要的Lisence(许可证),并在对应的服务器上进行配置绑定;开发人员搭建自动构建所需要的Jenkins服务器,并完成编译脚本配置,构建完成之后服务器可以邮件通知开发人员,并告知产物位置,以便进行下一步调试;开发人员通过钩子触发或者手动构建的方式,完成对于线上代码的构建,开发人员可以通过Jenkins的可视化界面,查看构建过程中所遇到的问题。

在具体实现中,服务器基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包的方法还包括以下步骤:

将所述待编译代码进行分类,得到多个单模块代码和一个主干代码;基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码;将所述目标单模块代码与所述主干代码合并,得到目标代码集合;对所述目标代码集合执行服务器的本地编译操作,得到目标软件包。

需要说明的是,所述单模块代码是基于功能对其待编译代码的分类,每一项功能的代码被分类为一个单模块代码,所述主干代码是除了功能代码之外的运行代码。例如,开发团队需求开发包括功能A、功能B以及功能C的智能驾驶软件,开发人员们将各自编写的待编译代码上传至服务器,服务器将其分类为单模块代码X、单模块代码Y、单模块代码Z以及主干代码T,其中单模块代码X、单模块代码Y以及单模块代码Z分别对应功能A、功能B以及功能C。

可理解的是,所述目标单模块代码是指各单模块代码在进行编译后,编译结果为编译成功的单模块代码,即服务器通过对各所述单模块代码进行基于服务器的本地编译,筛选出编译结果为编译成功的单模块代码。其中若单模块代码的编译结果为编译失败,则说明该代码存在无法编译成功的错误,需要开发人员进行重新编写。

在具体实现中,由于对全部待编译代码进行全量编译的编译时间长,且在其中出现编译失败后难以定位到准确的错误代码,因此本申请提出对全部待编译代码进行代码分类,每个单模块代码的编译时间短,且在其中出现编译失败后容易快速定位到错误代码的位置,以此提高代码编译的效率。

在具体实现中,服务器基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包的方法还包括以下步骤:

基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到可执行文件;在服务器的软件打包环境下,对所述可执行文件进行打包,得到目标软件包,其中,所述软件打包环境与所述QNX系统编译环境一致。

在具体实现中,本申请提出在开发过程中使用与最终打包环境一致的软件编译编译,以实现减少出现因编译环境差异而导致问题的可能性,进一步地,本申请的服务器编译保证了编译的代码始终保持最新的状态,且没有本地代码污染,从而编译出最新最齐全的产物。

本申请通过在服务器上构建QNX系统编译环境下的编译脚本,实现将编译服务移植至服务器上,利用服务器的高并发能力,在服务器本地对多个用户终端上传的待编译代码进行高效编译,从而实现多人的在线编译,以此提高了资源的利用率,进而解决了企业研发团队在对智能驾驶软件的开发过程中资源不足的问题。

基于上述的第一实施例,本申请还提供另一实施例,参照图4,所述智能驾驶软件的构建方法包括:

服务器在基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码的步骤之后,所述方法包括:

步骤A100,基于所述编译脚本,将所述目标单模块代码进行全量编译,得到全量编译结果;

在具体实现中,本申请还提出在对各单模块代码进行编译验证以及调试后,服务器基于所述编译脚本,将所述目标单模块代码进行全量编译,得到全量编译结果,其中全量编译是指将全部目标单模块代码一并进行编译,得到全量编译结果。

步骤A200,基于预设的代码门禁,判断所述全量编译结果是否成功编译,其中,所述代码门禁包括预设的编译验证规则;

在具体实现中,参照图5,服务器首先对各单模块代码进行本地编译,即服务器执行最小粒度的编译,提升编译速度,提高研发调试过程中的等待时间。并且服务器在代码合入主干之前,通过预设的代码门禁,执行服务器代码全量编译,以实现阻隔简单问题的引入。

步骤A300,若所述全量编译结果为编译成功,才执行将所述目标单模块代码与所述主干代码合并,得到目标代码集合;

步骤A400,若所述全量编译结果为编译失败,则生成包括编译失败信息的失败报文,并将所述失败报文发送至用户终端。

在具体实现中,本申请还提出通过包括预设的编译验证规则的代码门禁,进一步判断目标单模块代码的全量编译是否成功,并且只有当全量编译结果为编译成功,才执行下一步骤的将所述目标单模块代码与所述主干代码合并,得到目标代码集合;而若所述全量编译结果为编译失败,则生成包括编译失败信息的失败报文,并将所述失败报文发送至用户终端,以便开发人员及时发现代码编译新出现的问题,及时定位、及时解决。

在具体实现中,本申请所提出的软件编译方案,在合法合规的基础上,最大程度减少了开发所需成本,尤其是在大型团队合作开发的模式下,最大限度利用资源,消除编译偏差,切实满足当下ADCU(自动驾驶域控制器)联合开发场景。

本申请还提供一种智能驾驶软件的构建装置,参照图6,所述智能驾驶软件的构建装置包括:

获取模块10,用于获取代码仓中的待编译代码,其中,所述代码仓保存有多个用户终端上传的待编译代码;

编译模块20,用于基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包,其中,所述QNX系统编译环境下的编译脚本是基于QNX许可证和编译脚本配置所构建生成的。

可选地,所述智能驾驶软件的构建装置还包括:

许可证获取模块,用于获取QNX许可证,其中,所述QNX许可证的数量为一个;

构建模块,用于基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本,以供服务器基于所述QNX许可证实现对多个用户终端上传的待编译代码的编译。

可选地,所述构建模块,包括:

生成模块,用于在与所述QNX许可证进行绑定之后,生成QNX系统编译配置;

环境构建模块,用于基于所述QNX系统编译配置,构建服务器的QNX系统编译环境;

脚本配置获取模块,用于获取编译脚本配置;

确定模块,用于基于所述编译脚本配置,确定所述QNX系统编译环境下的编译脚本。

可选地,所述编译模块20,包括:

分类模块,用于将所述待编译代码进行分类,得到多个单模块代码和一个主干代码;

本地编译模块,用于基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码;

合并模块,用于将所述目标单模块代码与所述主干代码合并,得到目标代码集合;

代码集合编译模块,用于对所述目标代码集合执行服务器的本地编译操作,得到目标软件包。

可选地,所述智能驾驶软件的构建装置还包括:

全量编译模块,用于基于所述编译脚本,将所述目标单模块代码进行全量编译,得到全量编译结果;

判断模块,用于基于预设的代码门禁,判断所述全量编译结果是否成功编译,其中,所述代码门禁包括预设的编译验证规则;

编译成功模块,用于若所述全量编译结果为编译成功,才执行将所述目标单模块代码与所述主干代码合并,得到目标代码集合。

可选地,所述智能驾驶软件的构建装置还包括:

编译失败模块,用于若所述全量编译结果为编译失败,则生成包括编译失败信息的失败报文,并将所述失败报文发送至用户终端。

可选地,所述编译模块20,还包括:

可执行文件确定模块,用于基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到可执行文件;

打包模块,用于在服务器的软件打包环境下,对所述可执行文件进行打包,得到目标软件包,其中,所述软件打包环境与所述QNX系统编译环境一致。

本申请智能驾驶软件的构建装置具体实施方式与上述智能驾驶软件的构建方法各实施例基本相同,在此不再赘述。

参照图7,图7是本申请实施例方案涉及的硬件运行环境的终端结构示意图。

如图7所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

可选地,该智能驾驶软件的构建设备还可以包括矩形用户接口、网络接口、摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。矩形用户接口可以包括显示屏(Display)、输入子模块比如键盘(Keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。

本领域技术人员可以理解,图6中示出的智能驾驶软件的构建设备结构并不构成对智能驾驶软件的构建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图7所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块以及智能驾驶软件的构建程序。操作系统是管理和控制智能驾驶软件的构建设备硬件和软件资源的程序,支持智能驾驶软件的构建程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与智能驾驶软件的构建系统中其它硬件和软件之间通信。

在图7所示的智能驾驶软件的构建设备中,处理器1001用于执行存储器1005中存储的智能驾驶软件的构建程序,实现上述任一项所述的智能驾驶软件的构建方法的步骤。

本申请智能驾驶软件的构建设备具体实施方式与上述智能驾驶软件的构建方法各实施例基本相同,在此不再赘述。

本申请还提供一种存储介质,所述存储介质上存储有实现智能驾驶软件的构建方法的程序,所述实现智能驾驶软件的构建方法的程序被处理器执行以实现如下所述智能驾驶软件的构建方法:

获取代码仓中的待编译代码,其中,所述代码仓保存有多个用户终端上传的待编译代码;

基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包,其中,所述QNX系统编译环境下的编译脚本是基于QNX许可证所构建的。

可选地,所述获取代码仓中的待编译代码的步骤之前,所述方法包括:

获取QNX许可证,其中,所述QNX许可证的数量为一个;

基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本,以供服务器基于所述QNX许可证实现对多个用户终端上传的待编译代码的编译。

可选地,所述基于所述QNX许可证,构建服务器的QNX系统编译环境以及所述QNX系统编译环境下的编译脚本的步骤,包括:

在与所述QNX许可证进行绑定之后,生成QNX系统编译配置;

基于所述QNX系统编译配置,构建服务器的QNX系统编译环境;

获取编译脚本配置;

基于所述编译脚本配置,确定所述QNX系统编译环境下的编译脚本。

可选地,所述基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行基于服务器的本地编译,得到目标软件包的步骤,包括:

将所述待编译代码进行分类,得到多个单模块代码和一个主干代码;

基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码;

将所述目标单模块代码与所述主干代码合并,得到目标代码集合;

对所述目标代码集合执行服务器的本地编译操作,得到目标软件包。

可选地,所述基于预设的QNX系统编译环境下的编译脚本,对各所述单模块代码进行基于服务器的本地编译,得到各所述单模块代码的编译结果,并确定所述编译结果为编译成功的目标单模块代码的步骤之后,所述方法包括:

基于所述编译脚本,将所述目标单模块代码进行全量编译,得到全量编译结果;

基于预设的代码门禁,判断所述全量编译结果是否成功编译,其中,所述代码门禁包括预设的编译验证规则;

若所述全量编译结果为编译成功,才执行将所述目标单模块代码与所述主干代码合并,得到目标代码集合。

可选地,所述基于预设的代码门禁,判断所述全量编译结果是否成功编译的步骤之后,所述方法包括:

若所述全量编译结果为编译失败,则生成包括编译失败信息的失败报文,并将所述失败报文发送至用户终端。

可选地,其特征在于,所述基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到目标软件包的步骤,包括:

基于预设的QNX系统编译环境下的编译脚本,对所述待编译代码进行服务器的本地编译,得到可执行文件;

在服务器的软件打包环境下,对所述可执行文件进行打包,得到目标软件包,其中,所述软件打包环境与所述QNX系统编译环境一致。

本申请存储介质具体实施方式与上述智能驾驶软件的构建方法各实施例基本相同,在此不再赘述。

本申请还提供一种计算机程序产品、包括计算机程序,该计算机程序被处理器执行时实现上述的智能驾驶软件的构建方法的步骤。

本申请计算机程序产品的具体实施方式与上述智能驾驶软件的构建方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 智能驾驶控制方法和装置、车辆、电子设备、存储介质
  • 智能设备的交互方法、装置、智能设备和存储介质
  • 无人驾驶汽车升级包安装方法、装置、设备及存储介质
  • 一种辅助驾驶的方法、装置、设备和计算机存储介质
  • 一种自动实行紧急避险驾驶方案的方法、装置、设备及存储介质
  • 自动驾驶功能软件系统、构建方法、电子设备及存储介质
  • 智能驾驶软件集成测试部署方法、装置、设备和介质
技术分类

06120116624827