一种基于Docker镜像的QT应用程序编译方法和装置与流程

文档序号:25721035发布日期:2021-07-02 21:05阅读:1600来源:国知局
一种基于Docker镜像的QT应用程序编译方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种基于docker镜像的qt应用程序编译方法和装置。



背景技术:

不同平台的应用程序需要在该平台的环境下,对应用程序源码进行编译过程得到应用程序可执行文件。现有技术中当应用程序在某一平台发布时,需要找到运载该平台的物理机,然后将应用程序源码在该物理机进行编译进而得到应用程序可执行文件,或者临时搭建该平台,进而在搭建的平台中对该应用程序源码进行编译。然而现有技术中的这种编译方法需要极多的物理硬件资源支持,且因编译环境较为分散。

可见,现有技术中需要依赖大量的不同平台的物理机实现对应用程序源码的编译过程,编译环境较为分散,不利于维护。



技术实现要素:

本发明提供一种基于docker镜像的qt应用程序编译方法和装置,用以解决现有技术中需要依赖大量的不同平台的物理机实现对应用程序源码的编译过程,编译环境较为分散,不利于维护的缺陷,实现了通过将docker镜像部署到任一机器上即可编译出适用于不同平台的应用程序可执行文件,无需依赖大量的物理机,便于对编译环境的管理。

本发明提供一种基于docker镜像的qt应用程序编译方法,包括:

获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,在从预置的docker镜像中获取与所述目标平台对应的qt构建工具之前,还包括:

获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像,将获取的docker镜像部署到待对所述qt应用程序源码进行编译的机器中。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,在获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像之前,还包括:

创建docker镜像,将图形用户界面程序开发框架qt的qt源码拷贝到创建的docker镜像中;

使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,所述使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具,包括:

获取预先对所述目标平台配置的qt源码的版本信息,通过不同平台的交叉编译工具对与所述版本信息匹配的qt源码进行编译,得到不同平台对应的不同版本的qt构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,还包括:

在docker镜像中将不同平台对应的qt构建工具放在不同的目录中;

其中,任一平台对应的qt构建工具包括基于不同版本信息的qt源码进行编译得到的程序构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,在通过预置的docker镜像对每一待进行发布的应用程序对应的应用程序源码进行编译后,销毁所述预置的docker镜像。

根据本发明提供一种基于docker镜像的qt应用程序编译方法,在上述基础上,所述目标平台包括如下至少一种:

mips平台、arm平台、x86平台、alnha平台。

本发明还提供一种基于docker镜像的qt应用程序编译装置,包括:

第一获取模块,用于获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

第二获取模块,用于从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

编译模块,用于基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于docker镜像的qt应用程序编译方法法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于docker镜像的qt应用程序编译方法的步骤。

本发明提供的一种基于docker镜像的qt应用程序编译方法和装置,在docker镜像中包含有不同平台对应的程序交叉编译工具,当需要将某一qt应用程序源码在任一目标平台进行发布时,只需要通过docker镜像便可获取该目标平台对应的qt目标程序构建工具,交叉编译工具。进而基于目标程序构建工具,交叉编译工具定制暴露出目标平台的qt编译环境,编译得到适用于目标平台的应用程序可执行文件。docker镜像可以在任一安装了docker容器的机器上运行,因而通过将docker镜像部署到任一机器上即可编译出适用于不同平台的应用程序可执行文件,无需依赖大量的不同架构的物理机,便于对编译环境的管理。此外,docker镜像具有较好的封装性,一致性,易于维护,易于集成到ci工程中,且在运行时也不会对其所在的机器上其它业务的运行造成影响。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的基于docker镜像的qt应用程序编译方法流程示意图之一;

图2是本发明提供的交叉编译docker镜像制作,及qt应用交叉编译流程图;

图3是本发明提供的面向多平台的qt应用交叉编译流程示意图;

图4为本发明提供的qt应用交叉编译发布的docker镜像制作方法流程示意图;

图5是本发明提供的qt应用程序交叉编译流程示意图;

图6是本发明提供的基于docker镜像的qt应用程序编译装置的结构框图之一;

图7是本发明提供的电子设备的实体结构示意图;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以面向linux系统为例,目前编译发布应用程序有如下两种方法:方法一:使用linux物理机进行编译发布应用程序;方法二:使用在linux系统上直接搭建的qt交叉编译工具链进行编译发布应用程序。然而根据调研发现这两种方法存在如下问题,如表1所示:

表1

可见,方法一主要缺点在于需要极多的物理硬件资源支持,且因编译环境较为分散,不宜构建面向多平台的自动化编译发布工程。方法二使用了交叉编译技术,使得各平台的编译工具链较为容易集中管理,适合构建面向多平台的自动化编译发布工程,但是其集成性较差,给环境的迁移搭建和维护增加了难度。

针对上述问题,图1为本实施例提供的基于docker镜像的qt应用程序编译方法流程示意图,该方法由任一机器实现,参见图1,该方法包括:

步骤101:获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

步骤102:从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

步骤103:基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

其中,程序交叉编译工具通常基于对qt源码进行编译生成。

步骤101可以具体为:获取待对应用程序进行发布的目标平台,qt版本,以及所述应用程序对应的应用程序源码。

步骤102可以具体为:从预置的docker镜像中定制暴露与所述目标平台对应的一整套qt应用程序构建工具,程序交叉编译工具,作为目标平台的程序交叉编译工具;其中,所述程序构建工具用于对qt应用程序进行构建以生成makefile,所述交叉编译工具用于对所述目标平台中的应用程序源码进行交叉编译。

关于docker,本实施例做如下介绍:docker是目前最为流行的linux容器解决方案,提供简单易用的容器使用接口。作为一个开源的容器技术,它可以快速的创建一个轻量级、可移植的容器。作为一种新兴的虚拟化技术,它能够更快速的交付和部署、更灵活的组合和扩展及简单的管理。docker将应用程序与该程序的依赖文件,或者一系列生产工具,打包到一个镜像文件中。通过运行这个打包的镜像,就会生成一个虚拟容器,应用程序在这个虚拟容器里运行,就好像运行在真实的服务器上一样。通过这样的方式对应用的运行时环境或者工具进行打包,有助于实现应用部署的便捷性、应用测试环境搭建的灵活性、跨平台迁移的快捷性。应用程序打包成容器镜像后,可以运行在任何环境中,包括物理服务器、虚拟机、公有云、私有云等。由于docker具备的应用运行环境打包、容器轻量化等特性,使得docker技术应用在越来越广泛的场景之中。尤其是在跨cpu架构的应用迁移、打包、编译的场景中,通过运行已经打包好的应用编译环境的容器镜像,可以快速的启动应用的编译环境,并编译对应cpu架构的可执行程序。

本实施例提供了一种基于docker镜像的qt应用程序编译方法,在docker镜像中包含有不同平台对应的程序交叉编译工具,当需要将某一qt应用程序源码在任一目标平台进行发布时,只需要通过docker镜像便可获取该目标平台对应的qt目标程序构建工具,交叉编译工具。进而基于目标程序构建工具,交叉编译工具定制暴露出目标平台的qt编译环境,编译得到适用于目标平台的应用程序可执行文件。docker镜像可以在任一安装了docker容器的机器上运行,因而通过将docker镜像部署到任一机器上即可编译出适用于不同平台的应用程序可执行文件,无需依赖大量的不同架构的物理机,便于对编译环境的管理。此外,docker镜像具有较好的封装性,一致性,易于维护,易于集成到ci工程中,且在运行时也不会对其所在的机器上其它业务的运行造成影响。

具体来说,本实施例使用docker容器轻量级、可迁移性,且能快速部署的优秀特性,结合qt交叉编译技术的优势。实现一种集成多个平台的qt交叉编译工具链的docker容器镜像,其支持快速迁移部署,并且能根据参数在创建容器时定制指定架构、指定版本的qt编译环境。docker镜像具备良好的集成性,可作为qt应用程序自动化编译发布的工程组件。

进一步地,在上述各实施例的基础上,在从预置的docker镜像中获取与所述目标平台对应的qt构建工具之前,还包括:

获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像,将获取的docker镜像部署到待对所述qt应用程序源码进行编译的机器中。

需要说明的是,通常是将生成的docker镜像存储在某一机器上,在需要通过任一机器对应用程序源码进行编译时,均可以将存储的docker镜像部署到该机器中,进而通过该机器运行docker镜像实现对应用程序源码的编译过程。

本实施例中,任一机器均可以部署该docker镜像实现对应用程序源码的编译,便于管理。

进一步地,在上述各实施例的基础上,在通过预置的docker镜像对每一待进行发布的应用程序对应的应用程序源码进行编译后,销毁所述预置的docker镜像。

本实施例中,在完成对应用程序源码的编译过程中,可以将docker镜像对销毁,以释放docker镜像占用的空间,避免docker镜像的存在对机器造成的影响。

进一步地,在上述各实施例的基础上,所述目标平台包括如下至少一种:

mips平台、arm平台、x86平台、alnha平台。

图2为本实施例提供的交叉编译docker镜像制作,及qt应用交叉编译流程图,图3为本实施例提供的面向多平台的qt应用交叉编译流程示意图,参见图2和图3,在确定了应用程序待发布的目标平台后,从docker镜像中可以获取到该平台对应的编译工具,进而构建在目标平台对应用程序源码进行编译的编译环境,从而实现对应用程序源码的编译过程。当目标平台为x86平台时,启用x86平台、指定qt版本的编译工具链(即程序交叉编译工具),根据环境变量,建立面向x86平台的指定qt版本的编译环境,执行编译任务,生成目标机上的可执行程序。当目标平台为arm平台时,启用arm平台、指定qt版本的编译工具链,根据环境变量,建立面向arm平台的指定qt版本的编译环境,执行编译任务,生成目标机上的可执行程序。当目标平台为mips平台时,启用mips平台、指定qt版本的编译工具链,根据环境变量,建立面向mips平台的指定qt版本的编译环境,执行编译任务,生成目标机上的可执行程序。

其中,如图2所示,docker(centos7)镜像安装获取各平台的交叉编译软件(自带gcc/g++交叉编译工具):

yuminstallbinutils-mips64-linux-gnugcc-c++-mips64-linux-gnugcc-mips64-linux-gnu;

yuminstallbinutils-aarch64-linux-gnugcc-aarch64-linux-gnugcc-c++-aarch64-linux-gnu;

yuminstallbinutils-x86_64-linux-gnugcc-c++-x86_64-linux-gnugcc-x86_64-linux-gnu。

关于docker镜像的创建,进一步地,在上述各实施例的基础上,在获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像之前,还包括:

创建docker镜像,将图形用户界面程序开发框架qt的qt源码拷贝到创建的docker镜像中;

使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具。

qt构建工具例如可以是qmake等。具体来说,qt构建工具生成指导交叉编译qt应用程序源码的配置文件makefile。

其中,qt构建工具可以包括gcc编译工具链或者g++编译工具链。

关于qt,需要说明的是,qt是一个跨平台的c++图形用户界面库,它提供给开发者建立图形用户界面所需的功能,广泛用于开发图形用户界面程序,也可用于开发非图形用户界面(比如命令行界面)程序。qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。qt支持所有的unix系统,当然也包括linux系统,还支持winnt/win2k、windows平台,智能手机系统android、ios、winphone,嵌入式系统qnx、vxworks等等。qt还具有下列一些优点。(1)优良的跨平台特性;(2)面向对象;(3)丰富的api接口;(4)支持2d/3d图形渲染,支持opengl;(5)大量详尽的开发文档;(6)xml支持。

本实施例中,创建了能够对适用于不同平台的应用程序源码进行编译的docker镜像,通过创建的docker镜像能够实现基于部署了该docker镜像的机器进行应用程序源码的编译。

进一步地,在上述各实施例的基础上,所述使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具,包括:

获取预先对所述目标平台配置的qt源码的版本信息,通过不同平台的交叉编译工具对与所述版本信息匹配的qt源码进行编译,得到不同平台对应的不同版本的qt构建工具。

由于不同的平台可能使用于不同版本信息对应的qt源码,通过版本信息匹配相应的qt源码能够生成与目标平台匹配性更好的程序交叉编译工具。

进一步地,在上述各实施例的基础上,还包括:

在docker镜像中将不同平台对应的qt构建工具放在不同的目录中;

其中,任一平台对应的qt构建工具包括基于不同版本信息的qt源码进行编译得到的程序构建工具。

本实施例中,在docker镜像中将不同平台对应的qt交叉编译工具放在不同的目录中,便于实现qt交叉编译工具的查询。

图4是本实施例提供的qt应用交叉编译发布的docker镜像制作方法流程示意图,参见图4,该方法包括:

s1、从docker镜像仓库中拉取linuxcentos7基础镜像(也可选择其它发行版);从qt官网下载所需qt各版本的源码。

s2、在宿主机上创建、启动一个centos7容器;进入容器,更换国内软件源,安装基础的辅助工具(如tar,vim等)。

s3、从软件源中安装mips64el,arm64,x86_64的交叉编译工具软件,最终配置获取到各目标平台上的gcc/g++交叉编译工具链。

s4、将qt各版本源码拷贝到容器中;依次定制各平台(mips64el,arm64,x86_64)的qmake.conf文件,并指定其交叉编译工具链。

s5、根据参数依次编译qt源码,最终获取到所需的多个平台,多个版本的qt构建工具qmake。不同平台,版本的qt构建工具位于不同目录下。

s6、删除无用的辅助工具软件,源码等;测试环境变量,确保各平台的qt构建工具,gcc/g++交叉编译工具链可访问、可执行;测试构建、交叉编译发布各平台的qt应用,确保能在物理机上运行;添加容器启动时环境定制shell脚本。

s7、退出容器,保存修改;导出镜像。在宿主系统上为各平台、qt版本的编译环境编写统一的arch_version_env.list环境配置文件,其内容包括容器内目标平台,目标qt版本的构建工具,及各平台gcc/g++交叉编译工具链的路径、名称。

其中,在s4中,将qt各版本源码拷贝到容器中;依次定制各平台(mips64el,arm64,x86_64)的qmake.conf文件,并指定其交叉编译工具链。对于各平台的qmake.conf配置详细如下:

mips64elqt交叉编译器qmake.conf配置

aarch64qt交叉编译器qmake.conf配置

x86_64qt交叉编译器qmake.conf配置

具体地,在安装有docker容器的linux系统上,通过加载目标镜像,即可获得面向多个linux平台,多个qt版本的qt交叉编译发布工具,这一实现方法具有如下优点:

1、具备良好的环境适配能力。编译发布环境资源利用率较高,仅需要在安装有docker容器的linux物理机或虚拟机环境上即可部署使用;即不必再需要指定目标架构的物理机编译环境,较好的节省了物理硬件资源成本。

2、具备良好的迁移性。镜像一次制作,到处部署使用。同时保证了容器生命周期的环境一致性和标准化。避免物理机/虚拟机上的qt编译环境因系统破坏而不能正常使用,且在此种场景下环境的一致性较难保证。

3、具备良好的集成性。该方法适合构建qt应用面向多平台的自动化编译发布工程,可以简化程序,降低编译工具与自动化工程的耦合性。

4、具备良好的易用性及便捷性。在qt项目构建时仅需传入需要发布的目标平台,之后并行启用多个容器挂载项目目录,即可一次性编译发布多个平台的可执行程序。

5、该方法不会对物理机/虚拟机环境造成影响。容器拥有不错的资源隔离与限制能力,可以精确地对应用分配cpu、内存等资源,保证不会影响系统的其他应用。

6、维护成本较低。因具备较好的封装性,可避免因失误操作对编译环境的破坏,从而大大减少维护成本,且容器具有良好的版本控制。

图5是本实施例提供的qt应用程序交叉编译流程示意图,参见图5,该流程包括将qt应用代码(即应用程序源码)基于docker镜像中的pro文件、makefile等实现交叉编译,得到适用于不同平台的可执行文件,进而在不同平台运行。

具体地,本实施例针对linux系统使用docker容器技术封装面向多个平台、多个版本的qt交叉编译工具,制作支持编译发布指定平台,指定版本的qt应用程序的docker镜像;同时支持自动化批量编译发布多个目标平台,指定qt版本的应用程序。该方法通过docker容器的封装,故具备容器的一切优势,拥有良好的集成性、迁移性;具备较好的隔离性,对宿主系统影响较小;良好的版本管理支持,使得工具的维护成本较低;具有良好的迁移性,一次构建,到处运行,且能保证环境的一致性及标准化;交叉编译的使用,使得对于物理硬件的需求进一步降低。

本方法的基本过程如下:

容器镜像内集成了多个平台,多个qt版本的交叉编译工具。根据编译需求,容器创建时即启用所需要的编译环境:即指定平台,指定qt版本的完整编译工具。

本实施例提供的方法达到了如下技术效果:

第一、在安装有docker容器的linux物理机或虚拟机环境上即可部署使用,具备良好的环境适配能力。即不必再依赖指定目标架构的物理机编译环境,较好的节省了物理硬件资源成本。

第二、镜像一次制作,到处部署使用。不需要再重复多次构建,极大保证了环境一致性和标准化。

第三、适合构建qt应用面向多平台的自动化编译发布工程,可以简化程序,降低编译工具与自动化工程的耦合性。编译发布多个平台的程序不需要在多个物理机上手动进行编译。

第四、可以一次性编译发布多个平台的可执行程序。不必再手动执行多次,提供效率。

第五、拥有不错的资源隔离与限制能力。保证不会影响系统的其他应用,不会对物理机/虚拟机环境造成影响。

第六、维护成本较低。因具备较好的封装性,可避免因失误操作对编译环境的破坏,从而大大减少维护成本,且容器具有良好的版本控制。

图6为本实施例提供的基于docker镜像的qt应用程序编译装置的结构框图,参见图6,该基于docker镜像的qt应用程序编译装置包括第一获取模块601、第二获取模块602和编译模块603,其中,

第一获取模块601,用于获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

第二获取模块602,用于从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

编译模块603,用于基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

本实施例提供的基于docker镜像的qt应用程序编译装置适用于上述各实施例提供的基于docker镜像的qt应用程序编译方法,在此不再赘述。

本实施例提供了一种基于docker镜像的qt应用程序编译装置,在docker镜像中包含有不同平台对应的程序交叉编译工具,当需要将某一应用程序源码在任一目标平台进行发布时,只需要通过docker镜像便可获取该目标平台对应的目标程序交叉编译工具。进而基于目标程序交叉编译工具构建目标平台的编译环境,编译得到适用于目标平台的应用程序可执行文件。docker镜像可以在任一安装了docker容器的机器上运行,因而通过将docker镜像部署到任一机器上即可编译出适用于不同平台的应用程序可执行文件,无需依赖大量的物理机,便于对编译环境的管理。此外,docker镜像具有较好的封装性,易于维护,在运行时也不会对其所在的机器上其它业务的运行造成影响。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,在从预置的docker镜像中获取与所述目标平台对应的qt构建工具之前,还包括:

获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像,将获取的docker镜像部署到待对所述qt应用程序源码进行编译的机器中。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,在获取预先创建的,包含有不同平台对应的qt构建工具的docker镜像之前,还包括:

创建docker镜像,将图形用户界面程序开发框架qt的qt源码拷贝到创建的docker镜像中;

使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,所述使用不同平台的交叉编译工具对所述qt源码进行编译,得到不同平台对应的qt构建工具,包括:

获取预先对所述目标平台配置的qt源码的版本信息,通过不同平台的交叉编译工具对与所述版本信息匹配的qt源码进行编译,得到不同平台对应的不同版本的qt构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,还包括:

在docker镜像中将不同平台对应的qt构建工具放在不同的目录中;

其中,任一平台对应的qt构建工具包括基于不同版本信息的qt源码进行编译得到的程序构建工具。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,在通过预置的docker镜像对每一待进行发布的应用程序对应的应用程序源码进行编译后,销毁所述预置的docker镜像。

根据本发明提供一种基于docker镜像的qt应用程序编译装置,在上述基础上,所述目标平台包括如下至少一种:

mips平台、arm平台、x86平台、alnha平台。

图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communicationsinterface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行基于docker镜像的qt应用程序编译方法,该方法包括:

获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行基于docker镜像的qt应用程序编译方法,该方法包括:

获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行基于docker镜像的qt应用程序编译方法,该方法包括:

获取待对qt应用程序进行发布的目标平台,以及所述qt应用程序对应的qt应用程序源码;

从预置的docker镜像中获取与所述目标平台对应的qt构建工具;其中,qt构建工具用于生成指导所述qt应用程序源码进行交叉编译的配置文件;

基于所述目标平台对应的qt构建工具对所述qt应用程序源码进行编译,生成适用于所述目标平台的应用程序可执行文件。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1