CN116257250A - 跨平台编译方法、装置、电子设备及存储介质 - Google Patents

跨平台编译方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116257250A
CN116257250A CN202310139887.1A CN202310139887A CN116257250A CN 116257250 A CN116257250 A CN 116257250A CN 202310139887 A CN202310139887 A CN 202310139887A CN 116257250 A CN116257250 A CN 116257250A
Authority
CN
China
Prior art keywords
compiling
platform
user
target chip
cross
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310139887.1A
Other languages
English (en)
Inventor
辛超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Changan Automobile Co Ltd
Original Assignee
Chongqing Changan Automobile Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing Changan Automobile Co Ltd filed Critical Chongqing Changan Automobile Co Ltd
Priority to CN202310139887.1A priority Critical patent/CN116257250A/zh
Publication of CN116257250A publication Critical patent/CN116257250A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本申请涉及自动驾驶技术领域,特别涉及一种跨平台编译方法、装置、电子设备及存储介质,其中,方法包括:接收用户传入的编译配置参数;解析编译配置参数,并根据解析结果确定编译配置文件,并根据编译配置文件配置交叉编译工具链;利用交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据编译配置文件和目标芯片平台的可执行代码开发得到用户功能模块,以使得用户通过用户功能模块链接第三方开源库。由此,解决了相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。

Description

跨平台编译方法、装置、电子设备及存储介质
技术领域
本申请涉及自动驾驶技术领域,特别涉及一种跨平台编译方法、装置、电子设备及存储介质。
背景技术
自动驾驶软件开发属于大型软件开发,涉及到多个开发团队开发自己的功能模块。自动驾驶还涉及到多个芯片平台,目前常用平台包括地平线J5平台,英伟达ORINX(Linux/QNX),英伟达XAVIER平台,工控机(X86 PC)仿真平台等,各个团队在开发自己功能时,需要根据各芯片平台搭建自己开发环境,移植自己所需的第三方开源库,重复工作同时容易造成各团队引用的开源库版本不一致或者编译选项不一致导致的各种编译和集成冲突问题。
相关技术中提供一种支持持续集成构建的跨平台编译方法,通过虚拟机,Docker容器或者QEMU等虚拟环境下搭建对应的编译环境,针对多个平台需要搭建多个容器或者虚拟环境;另一种通过编译选项和参数来配置编译环境,在配置好的环境下编译对应平台代码。
然而,第一种仅针对各平台的持续集成和持续发布(CI/CD)不利于开发与维护;另一种需要在配置好的环境下编译对应平台代码,便利性不足。
发明内容
本申请提供一种跨平台编译方法、装置、电子设备及存储介质,以解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
本申请第一方面实施例提供一种跨平台编译方法,包括以下步骤:接收用户传入的编译配置参数;解析所述编译配置参数,并根据解析结果确定编译配置文件,并根据所述编译配置文件配置交叉编译工具链;以及利用所述交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,以使得所述用户通过所述用户功能模块链接所述第三方开源库,其中,所述第三方开源库由所述编译配置参数对应的所述目标芯片平台移植得到。
根据上述技术手段,本申请可以解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
可选地,在一些实施例中,所述根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,包括:将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径;基于所述目标芯片平台的输出产物路径和所述第三方开源库的头文件和库文件开发得到用户功能模块。
根据上述技术手段,本申请可以通过各开源库在各个自动驾驶平台均能编译生成对应目标平台的可执行代码,使各个自动驾驶开发团队可以基于本平台开发自动驾驶业务功能,无需再次搭建开发平台和移植开发所需的开源代码,大大提高开发效率。
可选地,在一些实施例中,在将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径之前,还包括:将所述编译配置文件的格式调整为目标格式,并生成所述编译配置文件对应的编译参数和编译选项。
根据上述技术手段,本申请可以将配置文件格式调整为目标格式,生成编译配置文件对应的编译参数和编译选项。
可选地,在一些实施例中,所述接收用户传入的编译配置参数,包括:接收用户传入的平台参数,并根据所述平台参数建立所述目标芯片平台的输出产物路径;根据所述平台参数和用户的选择指令确定所述编译配置参数。
根据上述技术手段,本申请可以通过集成各芯片平台编译工具链和第三方开源软件源代码,使自动驾驶开发团队无需关注各自动驾驶芯片平台的开发环境和自身开发所依赖的第三方开源库,只需专注自身的功能业务,大大提高开发效率。
可选地,在一些实施例中,在接收所述用户传入的所述编译配置参数之前,还包括:加载所有芯片平台。
根据上述技术手段,本申请可以Linux系统环境,安装必要的编译工具即可,且目标在于构建统一的开发平台,方便自动驾驶业务开发团队的二次开发。
本申请第二方面实施例提供一种跨平台编译装置,包括:接收模块,用于接收用户传入的编译配置参数;解析模块,用于解析所述编译配置参数,并根据解析结果确定编译配置文件,并根据所述编译配置文件配置交叉编译工具链;以及编译模块,利用所述交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,以使得所述用户通过所述用户功能模块链接所述第三方开源库,其中,所述第三方开源库由所述编译配置参数对应的所述目标芯片平台移植得到。
可选地,在一些实施例中,所述编译模块,还用于:将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径;基于所述目标芯片平台的输出产物路径和所述第三方开源库的头文件和库文件开发得到用户功能模块。
可选地,在一些实施例中,所述编译模块,在将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径之前,还包括:将所述编译配置文件的格式调整为目标格式,并生成所述编译配置文件对应的编译参数和编译选项。
可选地,在一些实施例中,所述接收模块,还用于:接收用户传入的平台参数,并根据所述平台参数建立所述目标芯片平台的输出产物路径;根据所述平台参数和用户的选择指令确定所述编译配置参数。
可选地,在一些实施例中,在接收所述用户传入的所述编译配置参数之前,所述接收模块,还包括:加载所有芯片平台。
本申请第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的跨平台编译方法。
本申请第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以用于实现如上述实施例所述的跨平台编译方法。
由此,通过将所有自驾平台编译工具链放入编译平台,接收用户编译配置参数,将编译参数以平台+系统+编译方式的形式传入,并解析查找对应的配置文件,配置对应平台的编译选项和交叉编译工具,并创建编译生成产物路径,调用Cmake构建系统,编译第三方开源库生成对应自驾平台的可执行代码;并根据查找到的配置文件信息编译用户开发模块,用户模块可直接链接生成的第三方开源库。由此,解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为相关技术中的自动驾驶平台开发模式;
图2为根据本申请实施例提供的跨平台编译方法的流程图;
图3为根据本申请一个具体实施例提供的自动驾驶平台开发模式示意图;
图4为根据本申请一个具体实施例提供的跨平台编译方法的流程图;
图5为根据本申请实施例提供的跨平台编译装置的方框示意图;
图6为根据本申请实施例提供的电子设备的结构示意图。
附图标记说明:10-跨平台编译装置、100-接收模块、200-解析模块和300-编译模块。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的跨平台编译方法、装置、电子设备及存储介质。
在介绍本申请实施例的跨平台编译方法之前,先介绍一下相关技术中的自动驾驶平台开发模式。
如图1所示,通过获取开发平台编译工具链,交差编译移植对应平台第三方依赖库,交叉编译用户自开发功能模块,更新的自动驾驶平台,并重复工作不断更新自动驾驶平台。然而,各个团队在开发自己功能时,需要根据各芯片平台搭建自己开发环境,移植自己所需的第三方开源库,重复工作同时容易造成各团队引用的开源库版本不一致或者编译选项不一致导致的各种编译和集成冲突问题。
为解决上述问题,本申请实施例提出一种跨平台编译方法,通过将所有自驾平台编译工具链放入编译平台,接收用户编译配置参数,将编译参数以平台+系统+编译方式的形式传入,并解析查找对应的配置文件,配置对应平台的编译选项和交叉编译工具,并创建编译生成产物路径,调用Cmake构建系统,编译第三方开源库生成对应自驾平台的可执行代码;并根据查找到的配置文件信息编译用户开发模块,用户模块可直接链接生成的第三方开源库。由此,解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
具体而言,图2为本申请实施例所提供的一种跨平台编译方法的流程示意图。
如图2所示,该跨平台编译方法包括以下步骤:
在步骤S201中,接收用户传入的编译配置参数。
可选地,在一些实施例中,接收用户传入的编译配置参数,包括:接收用户传入的平台参数,并根据平台参数建立目标芯片平台的输出产物路径;根据平台参数和用户的选择指令确定编译配置参数。
具体地,编辑脚本根据用户传入平台参数,建立对应芯片平台的输出产物目录,输出产物路径为out/target/xxxx_platform/app,该目录下分别放置include/bin/lib/etc几个目录,分别存放生成物的头文件,可执行文件,库文件,配置文件。
需要说明的是,编译脚本可以为build.sh为编译脚本,用于解析输入的编译参数,执行编译动作;用户需要编译的目标目录为build_goal,一般传入用户自开发功能的子目录,编译脚本通过cmake add_subdirectory()函数将用户指定功能模块加入编译,如果不指定编译目录,将编译顶层文件下下所有子目录(一般为所有功能模块目录);编译平台选择参数可以platform_select,在执行build.sh编译脚本时,将加载支持的所有平台,通过用户平台选择参数选择对应的编译平台,如果没有传入此参数,将列出所有支持的芯片平台,由用户输入数字选择。
Lunch menu...pick a combo:
1.martix5_linux_cross-Debug
2.ipu04_qnx_cross-Debug
3.ipu04_linux_cross-Debug
4.bbox_linux_local-Debug
5.bbox_linux_cross-Debug
6.c281_linux_cross-Debug
7.sda_linux_cross-Debug
8.pc_linux_local-Debug
9.c385pc_linux_local-Debug
可选地,在一些实施例中,在接收用户传入的编译配置参数之前,还包括:加载所有芯片平台。
其中,所有芯片平台可以包括地平线J5平台,英伟达ORINX(Linux/QNX),英伟达XAVIER平台,工控机(X86 PC)仿真平台等。
具体地,在编译脚本读入用户配置参数之前,本申请实施例可以加载平台支持的所有芯片平台。
在步骤S202中,解析编译配置参数,并根据解析结果确定编译配置文件,并根据编译配置文件配置交叉编译工具链。
具体地,编译脚本根据用户选择的平台参数,找到对应的编译配置文件,配置交叉编译工具链(即对应的gcc/g++交叉编译工具路径)和sysroot路径。
在步骤S203中,利用交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据编译配置文件和目标芯片平台的可执行代码开发得到用户功能模块,以使得用户通过用户功能模块链接第三方开源库,其中,第三方开源库由编译配置参数对应的目标芯片平台移植得到。
其中,第三方开源库可以包括boost,abseil-cpp,eigen3,curl,openssl,json-c,jasoncpp,expat-2.1.0,gflags,glog,gtest,libcgroup,libtar,osqp,PROJ-4.9.3,protobuf,rapidjson,sqlite3,zlip,dds等。
可选地,在一些实施例中,根据编译配置文件和目标芯片平台的可执行代码开发得到用户功能模块,包括:将目标芯片平台的可执行代码安装在目标芯片平台的输出产物路径;基于目标芯片平台的输出产物路径和第三方开源库的头文件和库文件开发得到用户功能模块。
具体地,编译脚本使用配置的交叉编译工具编译平台移植的所有第三方开源库,并将编译生成产物安装在创建的目录out/target/xxxx_platform/app下。编译脚本编译用户指定功能模块,链接使用生成的第三方开源库的头文件和库文件,并将编译生成产物安装在步骤S201创建的目录out/target/xxxx_platform/app下。
可选地,在一些实施例中,在将目标芯片平台的可执行代码安装在目标芯片平台的输出产物路径之前,还包括:将编译配置文件的格式调整为目标格式,并生成编译配置文件对应的编译参数和编译选项。
具体地,编译脚本根据用户传入配置参数,找到对应的配置文件并解析配置文件,将编译配置文件的格式调整为目标格式,配置文件格式为key=value的形式,将生成对应的编译参数和编译选项用于编译用户工程源代码。
由此,如图3所示,本申请实施例通过选择对应自动驾驶芯片平台,交叉编译用户自开发功能模块,集成自动驾驶平台开发环境,实现对各个平台跨平台编译,基于本地Linux开发环境,无需服务器介入,通过集成各芯片平台编译工具链和第三方开源软件源代码,使自动驾驶开发团队无需关注各自动驾驶芯片平台的开发环境和自身开发所依赖的第三方开源库,只需专注自身的功能业务,大大提高开发效率。
为使得本领域技术人员进一步了解本申请实施例的跨平台编译,下面结合具体实施例进行详细阐述。
如图4所示,图4为根据本申请实施例提出的一种跨平台编译方法的流程图。
S401,将所有自驾平台编译工具链放入编译平台。
S402,编译脚本接收用户编译配置参数,编译参数通过平台+系统+编译方式的形式传入。
S403,编译脚本解析编译配置参数,查找对应的配置文件,配置对应平台的编译选项和交叉编译工具。
S404,编译脚本创建编译生成产物路径,调用Cmake构建系统,编译第三方开源库生成对应自驾平台的可执行代码。
S405,编译脚本根据查找到的配置文件信息编译用户开发模块,用户模块可直接链接生成的第三方开源库。
根据本申请实施例提出的跨平台编译方法,通过将所有自驾平台编译工具链放入编译平台,接收用户编译配置参数,将编译参数以平台+系统+编译方式的形式传入,并解析查找对应的配置文件,配置对应平台的编译选项和交叉编译工具,并创建编译生成产物路径,调用Cmake构建系统,编译第三方开源库生成对应自驾平台的可执行代码;并根据查找到的配置文件信息编译用户开发模块,用户模块可直接链接生成的第三方开源库。由此,解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
其次参照附图描述根据本申请实施例提出的跨平台编译装置。
图5是本申请实施例的跨平台编译装置的方框示意图。
如图5所示,该跨平台编译装置10包括:接收模块100、解析模块200和编译模块300。
其中,接收模块100,用于接收用户传入的编译配置参数;解析模块200,用于解析编译配置参数,并根据解析结果确定编译配置文件,并根据编译配置文件配置交叉编译工具链;以及编译模块300,利用交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据编译配置文件和目标芯片平台的可执行代码开发得到用户功能模块,以使得用户通过用户功能模块链接第三方开源库,其中,第三方开源库由编译配置参数对应的目标芯片平台移植得到。
可选地,在一些实施例中,编译模块300,还用于:将目标芯片平台的可执行代码安装在目标芯片平台的输出产物路径;基于目标芯片平台的输出产物路径和第三方开源库的头文件和库文件开发得到用户功能模块。
可选地,在一些实施例中,编译模块300,还用于:在将目标芯片平台的可执行代码安装在目标芯片平台的输出产物路径之前,还包括:将编译配置文件的格式调整为目标格式,并生成编译配置文件对应的编译参数和编译选项。
可选地,在一些实施例中,接收模块100,还用于:接收用户传入的平台参数,并根据平台参数建立目标芯片平台的输出产物路径;根据平台参数和用户的选择指令确定编译配置参数。
可选地,在一些实施例中,在接收用户传入的编译配置参数之前,接收模块100,还用于:加载所有芯片平台。
需要说明的是,前述对跨平台编译方法实施例的解释说明也适用于该实施例的跨平台编译装置,此处不再赘述。
根据本申请实施例提出的跨平台编译装置,通过将所有自驾平台编译工具链放入编译平台,接收用户编译配置参数,将编译参数以平台+系统+编译方式的形式传入,并解析查找对应的配置文件,配置对应平台的编译选项和交叉编译工具,并创建编译生成产物路径,调用Cmake构建系统,编译第三方开源库生成对应自驾平台的可执行代码;并根据查找到的配置文件信息编译用户开发模块,用户模块可直接链接生成的第三方开源库。由此,解决相关技术中容易导致各种编译和集成冲突,开发效率不高的问题,方便自动驾驶业务开发团队的二次开发,可以提供高效的开发环境。
图6为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序。
处理器602执行程序时实现上述实施例中提供的跨平台编译方法。
进一步地,电子设备还包括:
通信接口603,用于存储器601和处理器602之间的通信。
存储器601,用于存放可在处理器602上运行的计算机程序。
存储器601可能包含高速RAM(Random Access Memory,随机存取存储器)存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
如果存储器601、处理器602和通信接口603独立实现,则通信接口603、存储器601和处理器602可以通过总线相互连接并完成相互间的通信。总线可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral Component,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器601、处理器602及通信接口603,集成在一块芯片上实现,则存储器601、处理器602及通信接口603可以通过内部接口完成相互间的通信。
处理器602可能是一个CPU(Central Processing Unit,中央处理器),或者是ASIC(Application Specific Integrated Circuit,特定集成电路),或者是被配置成实施本申请实施例的一个或多个集成电路。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上的跨平台编译方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或N个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“N个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更N个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,N个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列,现场可编程门阵列等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种跨平台编译方法,其特征在于,包括以下步骤:
接收用户传入的编译配置参数;
解析所述编译配置参数,并根据解析结果确定编译配置文件,并根据所述编译配置文件配置交叉编译工具链;以及
利用所述交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,以使得所述用户通过所述用户功能模块链接所述第三方开源库,其中,所述第三方开源库由所述编译配置参数对应的所述目标芯片平台移植得到。
2.根据权利要求1所述的方法,其特征在于,所述根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,包括:
将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径;
基于所述目标芯片平台的输出产物路径和所述第三方开源库的头文件和库文件开发得到用户功能模块。
3.根据权利要求2所述的方法,其特征在于,在将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径之前,还包括:
将所述编译配置文件的格式调整为目标格式,并生成所述编译配置文件对应的编译参数和编译选项。
4.根据权利要求1所述的方法,其特征在于,所述接收用户传入的编译配置参数,包括:
接收用户传入的平台参数,并根据所述平台参数建立所述目标芯片平台的输出产物路径;
根据所述平台参数和用户的选择指令确定所述编译配置参数。
5.根据权利要求4所述的方法,其特征在于,在接收所述用户传入的所述编译配置参数之前,还包括:
加载所有芯片平台。
6.一种跨平台编译装置,其特征在于,包括:
接收模块,用于接收用户传入的编译配置参数;
解析模块,用于解析所述编译配置参数,并根据解析结果确定编译配置文件,并根据所述编译配置文件配置交叉编译工具链;以及
编译模块,利用所述交叉编译工具链编译第三方开源库得到目标芯片平台的可执行代码,并根据所述编译配置文件和所述目标芯片平台的可执行代码开发得到用户功能模块,以使得所述用户通过所述用户功能模块链接所述第三方开源库,其中,所述第三方开源库由所述编译配置参数对应的所述目标芯片平台移植得到。
7.根据权利要求6所述的装置,其特征在于,所述编译模块,还用于:
将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径;
基于所述目标芯片平台的输出产物路径和所述第三方开源库的头文件和库文件开发得到用户功能模块。
8.根据权利要求7所述的装置,其特征在于,在将所述目标芯片平台的可执行代码安装在所述目标芯片平台的输出产物路径之前,还包括:
将所述编译配置文件的格式调整为目标格式,并生成所述编译配置文件对应的编译参数和编译选项。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-5任一项所述的跨平台编译方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-5任一项所述的跨平台编译方法。
CN202310139887.1A 2023-02-20 2023-02-20 跨平台编译方法、装置、电子设备及存储介质 Pending CN116257250A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310139887.1A CN116257250A (zh) 2023-02-20 2023-02-20 跨平台编译方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310139887.1A CN116257250A (zh) 2023-02-20 2023-02-20 跨平台编译方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116257250A true CN116257250A (zh) 2023-06-13

Family

ID=86678938

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310139887.1A Pending CN116257250A (zh) 2023-02-20 2023-02-20 跨平台编译方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116257250A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521272A (zh) * 2023-06-30 2023-08-01 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116521272A (zh) * 2023-06-30 2023-08-01 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置系统
CN116521272B (zh) * 2023-06-30 2024-01-12 睿思芯科(深圳)技术有限公司 自定义芯片的在线集成开发配置系统

Similar Documents

Publication Publication Date Title
US7739679B2 (en) Object ordering tool for facilitating generation of firmware update friendly binary image
US5745897A (en) Method and system for compiling management information base specifications
Mecklenburg Managing Projects with GNU Make: The Power of GNU Make for Building Anything
CN111142903A (zh) 一种基于文件对比的配置文件交互式更新方法及装置
CN112394942A (zh) 基于云计算的分布式软件开发编译方法及软件开发平台
CN101937336A (zh) 软件资产打包和消费方法和系统
CN112882718B (zh) 编译处理方法、装置、设备及存储介质
CN112506518B (zh) 基于配置文件的编译方法和装置
CN116257250A (zh) 跨平台编译方法、装置、电子设备及存储介质
CN115185539B (zh) 一种生成可执行动态链接库文件方法、装置及存储介质
US20050137839A1 (en) Methods, apparatus and programs for system development
CN111985055A (zh) 一种模型封装方法、装置及电子设备
CN113360156B (zh) 一种ios编译方法及相关设备
CN116107524B (zh) 低代码应用日志处理方法、介质、装置和计算设备
CN112818176A (zh) 一种数据处理方法、装置、设备及存储介质
CN115794214B (zh) 应用模块元数据管理方法、设备、存储介质及装置
CN112596706A (zh) 模式化代码生成方法、装置和计算机可读存储介质
CN115658140A (zh) 一种sdk的打包方法、装置、终端以及存储介质
CN108334313A (zh) 用于大型soc研发的持续集成方法、装置及代码管理系统
US6343378B1 (en) Method of making link directive file and tool for making link directive file
CN107577476A (zh) 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质
CN114416099A (zh) 一种基于信息物理系统的模型集成方法及相关组件
CN107563025B (zh) 一种验证平台管理方法及装置
CN112597669B (zh) 一种模拟试验平台及其工作方法
CN116150039B (zh) 测试用例的测试管理装置、驱动自适应判定方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination