CN109508178A - 一种程序开发方法及装置 - Google Patents

一种程序开发方法及装置 Download PDF

Info

Publication number
CN109508178A
CN109508178A CN201811133177.3A CN201811133177A CN109508178A CN 109508178 A CN109508178 A CN 109508178A CN 201811133177 A CN201811133177 A CN 201811133177A CN 109508178 A CN109508178 A CN 109508178A
Authority
CN
China
Prior art keywords
compiling
translation
program
executable code
host
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.)
Granted
Application number
CN201811133177.3A
Other languages
English (en)
Other versions
CN109508178B (zh
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.)
China Mobile Communications Group Co Ltd
MIGU Culture Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
MIGU Culture Technology 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 China Mobile Communications Group Co Ltd, MIGU Culture Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201811133177.3A priority Critical patent/CN109508178B/zh
Publication of CN109508178A publication Critical patent/CN109508178A/zh
Application granted granted Critical
Publication of CN109508178B publication Critical patent/CN109508178B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Abstract

本发明公开了一种程序开发方法,所述方法包括:通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。本发明还提供一种程序开发装置。

Description

一种程序开发方法及装置
技术领域
本发明涉及程序开发技术,尤其涉及一种程序开发方法及装置。
背景技术
对C/C++开发语言项目做跨平台(例如,Windows平台、Linux各个发行版平台、Android平台、Mac/iOS平台)互斥环境编译时,需要针对各个平台配置出多个编译环境容器。每个编译环境容器在对程序代码进行代码编译时,需要从本地主机将程序代码提交到代码仓库服务器,然后再由各个编译环境容器对代码仓库服务器中的程序代码进行代码编译,待编译完成后再由各个编译环境容器输出生成的可执行代码文件。具体如图1所示。
图1为现有技术中程序开发流程示意图,如图1所示,在跨平台编译程序代码时,需要由从本地主机101将待开发的程序代码提交到代码仓库服务器102,然后由各平台配置的编译环境容器103对代码仓库服务器102中的程序代码做代码检出(checkout),当程序代码没有被检查出有报错时,再由各编译环境容器103对该程序代码做编译构建操作,如果该程序代码在编译操作过程中发生了环境编译报错时,需要由报错程序代码对应的编译环境容器103向本地主机101发送代码报错通知消息。本地主机101收到代码报错通知消息时在本地主机101中完成代码修改,之后,由本地主机101将修改后的程序代码再次提交到代码仓库服务器102,然后再由各平台的编译环境容器103对代码仓库服务器102中修改后的程序代码继续进行代码检出和代码编译构建操作。可见,现有技术中的程序开发过程相当的复杂繁琐。
发明内容
为解决上述技术问题,本发明实施例提供了一种程序开发方法及装置。
本发明实施例的技术方案是这样实现的:
根据本发明实施例的一方面,提供一种程序开发方法,所述方法包括:
通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
上述方案中,所述方法还包括:
根据所述程序编译环境,确定每个所述编译环境容器的属性;
根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
上述方案中,所述方法还包括:
对所述可执行代码文件进行编译验证;
当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;
或者,当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
上述方案中,当验证结果表征所述可执行代码文件未出现编译错误时,所述方法还包括:
在所述目标编译主机中保存所述可执行代码文件。
上述方案中,所述方法还包括:
确定所述程序代码编译结束时,退出所述编译环境容器。
根据本发明实施例的另一方面,提供一种程序开发装置,所述装置包括:
读取单元,用于通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
编译单元,用于在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
上述方案中,所述装置还包括:
确定单元,用于根据所述程序编译环境,确定每个所述编译环境容器的属性;
输出单元,用于根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
上述方案中,所述装置还包括:
验证单元,用于对所述可执行代码文件进行编译验证;
修复单元,用于当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;
发送单元,用于当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
上述方案中,所述装置还包括:
存储单元,用于当验证结果表征所述可执行代码文件未出现编译错误时,在所述目标编译主机中保存所述可执行代码文件。
根据本发明实施例的第三方面,提供一种程序开发装置,所述装置包括:存储器、处理器以及存储在存储器被处理器运动的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如上所述的程序开发方法中任一项所述的程序开发方法的步骤。
本发明实施例的技术方案中,提供一种程序开发方法及装置,通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。如此,用户可以在本地的编译环境容器内对程序代码进行代码编译,而无需将程序代码发送到代码仓库服务器,再对程序代码进行代码编译,从而节省了开发过程。
附图说明
图1为现有技术中程序开发流程示意图;
图2为本发明实施例中程序开发方法的流程示意图;
图3为本发明实施例中程序开发方法的实现效果图;
图4为本发明实施例中程序开发装置的结构组成示意图一;
图5为本发明实施例中程序开发装置的结构组成示意图二。
具体实施方式
下面结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图2为本发明实施例中程序开发方法的流程示意图;如图2所示,所述方法包括:
步骤201,通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
本申请中,该程序编译环境至少包括:Window操作系统编译环境、linux操作系统编译环境、MAC/iOS操作系统编译环境。
具体地,本申请提供的程序开发方法主要应用于配置有多个编译环境容器的本地编译主机中,且不同的编译环境容器对应不同的程序编译环境。
其中,在该本地编译主机中还安装有应用容器引擎(Docker),一个完整的Docker可以包括:客户端(Docker Client)、守护进程(Docker Daemon)、镜像(Docker Image)、容器(Docker Container)等工具。
其中,Docker采用C/S架构的Docker daemon作为服务端接受来自客户端的请求,并处理这些请求。Docker Client和服务端既可以运行在一个机器上,也可通过套接字(socket)或者RESTful API来进行通信。Docker daemon一般在宿主主机后台运行,等待接收来自客户端的消息。Docker的客户端则为用户提供一系列可执行命令,用户用这些命令实现跟Docker daemon的交互。
本地编译主机在配置编译环境容器时,具体可以通过Docker file文件,对目标编译主机运行时的环境进行配置,其中,Docker file文件是一个包含用于组合映像的命令的文本文档,Docker file文件可以使用在命令行中,来调用任何命令。比如:对于操作系统、C++编译器版本,Docker可以通过使用Docker file文件中的docker build命令,自动生成镜像文件,然后,将生成的镜像文件推送到本地Docker镜像仓库。
本申请中,本地编译主机还可以通过Docker-Compose启动所有目标平台的编译环境容器。
具体地,本地编译主机可以通过编写Docker-Compose.yaml文件,在本地为每个程序编译环境指定编译镜像,以配置出一个特定编译环境的Docker容器,然后,特定编译环境的Docker容器通过预先设置的volumes参数,进行磁盘挂载,以对本地编译主机的磁盘目录下待进行编译的代码进行代码读取。
其中,Compose是一个用户定义和运行多个Docker容器的Docker应用程序。在Compose中可以使用YAML文件来配置应用服务。也就是说,Docker-Compose默认的模板文件是Docker-Compose.yml。其中定义的每个服务都可以通过Docker image指令,指定镜像或build指令(需要Docker file)来自动构建。
步骤202,在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件;
本发明实施例中,多个编译环境容器或某个编译环境容器通过预设的volumes参数进行磁盘挂载,读取到本地编译主机磁盘目录下待进行编译的代码后,由各个编译环境容器对各自读取到的程序代码进行代码编译,并由各编译环境容器运行各自对应的编译程序,以生成可执行代码文件。如此,可以实现在本地编译主机的编译环境容器内进行程序代码编译的功能。而无需由本地编译主机将程序代码发送到代码仓库服务器,再由各编译环境容器从代码仓库服务器中获取程序代码进行代码编译。
本申请中,本地编译主机还可以根据每个程序编译环境,确定每个编译环境容器的属性;从而,可以根据每个编译环境容器的属性,将各编译环境容器中生成的可执行代码文件,输出到本地对应的目录中。
这里,本地编译主机在对程序的编译过程中还可以产生程序的日志文件、产出物等文件。并且,产生的程序的日志文件、产出物等文件还可以输出到本地对应的目录中。
本申请中,本地编译主机还可以对各编译环境容器中生成的可执行代码文件进行编译验证;生成验证结果;当验证结果表征某个编译环境容器内生成的可执行代码文件出现编译错误时,可以直接在本地的目标编译主机中修复编译错误;或者,当验证结果表征各个编译环境容器内生成的可执行代码文件未出现编译错误时,向代码仓库服务器发送该可执行代码文件。如此,如果在某一平台编译出错,本地就可以查看编译报错日志,分析解决编译错误,并在修复编译错误后,在本机再次执行代码读取和代码编译的过程,从而可以较快的验证代码编译的正确性,而无需再次修复的代码提交到代码仓库服务器等操作,使得操作流程更简洁。
本申请中,当验证结果表征各个编译环境容器内生成的可执行代码文件未出现编译错误时,本地编译主机还可以在本地的目标编译主机中保存该可执行代码文件。同时,本地编译主机在确定各平台的程序代码编译结束时,还可以退出各个编译环境容器,以释放出各个编译环境容器占用本地编译主机的中央处理器(CPU,Central Processing Unit)、内存资源的占用空间,从而达到节约资源使用的目的。
本申请中,通过一台本地编译主机,即可在代码开发时本地支持跨平台、多套互斥的编译环境,而无需使用多台编译主机来配置多个互斥编译环境,从而能够节省主机资源;另外,在代码未提交到代码仓库服务器前,在本地即可验证跨平台编译结果,以帮助编译检查、排错。而无需将代码先提交代码仓库服务器,然后再到各编译服务器上对代码进行代码验证,来避免代码提交到代码仓库服务器后才发现编译出错的问题,从而提高了程序开发效率;第三,各编译环境容器分别通过指定的volumes参数目录进行磁盘挂载,来读取本地编译主机的磁盘目录下待进行编译的代码,并在各编译环境容器中对读取到的程序代码进行代码编译,生成可执行代码文件,然后,还将各平台的可执行代码,即各平台的产出物保存在本地编译主机中,能够方便产出物的收集。本申请相比现有技术的程序开发过程,大大的简化了程序的开发流程。
图3为本发明实施例中程序开发方法的实现效果图,如图3所示,包括本地编译主机31和代码仓库服务器32,其中,本地编译主机31中配置有多个编译环境容器311,不同的编译环境容器311对应不同的程序编译环境。多个编译环境容器311或某个编译环境容器311通过预设的volumes参数进行磁盘挂载,读取到本地编译主机31和磁盘目录下待进行编译的代码后,本地编译主机31可以在各个编译环境容器311中读取到的程序代码,并由各个编译环境容器311对各自读取到的程序代码进行代码编译,生成编译结果,当编译结果表征某个编译环境容器311内生成的可执行代码文件出现编译错误时,报错代码对应的编译环境容器311将报错结果发送到本地编译主机31,并由本地编译主机31在本地进行编译错识的修复,在修复编译错误后,本地编译主机31再次执行代码读取和代码编译的过程,各编译环境容器311运行各自对应的编译程序,在确定程序代码编译成功后,生成可执行代码文件。本地编译主机31在确定程序代码编译结束且无编译错误时,再将生成的各平台的可执行代码文件,提交到代码仓库服务器32。
图4为本发明实施例中程序开发装置的结构组成示意图一,如图4所示,所述装置包括:
读取单元401,用于通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
编译单元402,用于在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
本申请中,该装置还包括:确定单元403,用于根据所述程序编译环境,确定每个所述编译环境容器的属性;
输出单元404,用于根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
本申请中,所述装置还包括:
验证单元405,用于对所述可执行代码文件进行编译验证;
修复单元406,用于当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;
发送单元407,用于当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
本申请中,所述装置还包括:
存储单元408,用于当验证结果表征所述可执行代码文件未出现编译错误时,在所述目标编译主机中保存所述可执行代码文件。
本申请,所述装置还包括:退出单元409,用于确定所述程序代码编译结束时,退出所述编译环境容器。
需要说明的是:上述实施例提供的程序开发装置在进行程序开发时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将程序开发装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的程序开发装置与上述程序开发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图5为本发明实施例中程序开发装置的结构示意图二,程序开发500可以是移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、个人数字助理、信息推送服务器、内容服务器等。图5所示的程序开发500包括:至少一个处理器501、存储器502、至少一个网络接口504和用户接口503。程序开发500中的各个组件通过总线系统505耦合在一起。可理解,总线系统505用于实现这些组件之间的连接通信。总线系统505除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统505。
其中,用户接口503可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
可以理解,存储器502可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器402旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器502用于存储各种类型的数据以支持程序开发500的操作。这些数据的示例包括:用于在程序开发500上操作的任何计算机程序,如操作系统5021和应用程序5022;音乐数据;动漫数据;图书信息;视频等。其中,操作系统5021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5022可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5022中。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器501可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器501可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器502,处理器501读取存储器502中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,程序开发500可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
具体所述处理器501运行所述计算机程序时,执行:通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
所述处理器501运行所述计算机程序时,还执行:根据所述程序编译环境,确定每个所述编译环境容器的属性;根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
所述处理器501运行所述计算机程序时,还执行:对所述可执行代码文件进行编译验证;当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;或者,当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
所述处理器501运行所述计算机程序时,还执行:在所述目标编译主机中保存所述可执行代码文件。
在示例性实施例中,本发明实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器502,上述计算机程序可由程序开发500的处理器401执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
该计算机程序被处理器运行时,还执行:根据所述程序编译环境,确定每个所述编译环境容器的属性;根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
该计算机程序被处理器运行时,还执行:对所述可执行代码文件进行编译验证;当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;或者,当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
该计算机程序被处理器运行时,还执行:在所述目标编译主机中保存所述可执行代码文件。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种程序开发方法,所述方法包括:
通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
2.根据权利要求1所述的方法,所述方法还包括:
根据所述程序编译环境,确定每个所述编译环境容器的属性;
根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
3.根据权利要求2所述的方法,所述方法还包括:
对所述可执行代码文件进行编译验证;
当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;
或者,当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
4.根据权利要求3所述的方法,当验证结果表征所述可执行代码文件未出现编译错误时,所述方法还包括:
在所述目标编译主机中保存所述可执行代码文件。
5.根据权利要求1所述的方法,所述方法还包括:
确定所述程序代码编译结束时,退出所述编译环境容器。
6.一种程序开发装置,所述装置包括:
读取单元,用于通过多个编译环境容器分别读取本地的目标编译主机中待进行编译的程序代码,所述多个编译环境容器均位于所述目标编译主机中,不同的编译环境容器对应不同的程序编译环境;
编译单元,用于在所述编译环境容器中对读取到的所述程序代码进行代码编译,生成可执行代码文件。
7.根据权利要求6所述的装置,所述装置还包括:
确定单元,用于根据所述程序编译环境,确定每个所述编译环境容器的属性;
输出单元,用于根据所述属性,将所述可执行代码文件输出到本地对应的目录中。
8.根据权利要求6所述的装置,所述装置还包括:
验证单元,用于对所述可执行代码文件进行编译验证;
修复单元,用于当验证结果表征所述可执行代码文件出现编译错误时,在所述目标编译主机中修复所述编译错误;
发送单元,用于当验证结果表征所述可执行代码文件未出现编译错误时,向代码仓库服务器发送所述可执行代码文件。
9.根据权利要求6所述的装置,所述装置还包括:
存储单元,用于当验证结果表征所述可执行代码文件未出现编译错误时,在所述目标编译主机中保存所述可执行代码文件。
10.一种程序开发装置,所述装置包括:存储器、处理器以及存储在存储器被处理器运动的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至5任一项所述的程序开发方法的步骤。
CN201811133177.3A 2018-09-27 2018-09-27 一种程序开发方法及装置 Active CN109508178B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811133177.3A CN109508178B (zh) 2018-09-27 2018-09-27 一种程序开发方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811133177.3A CN109508178B (zh) 2018-09-27 2018-09-27 一种程序开发方法及装置

Publications (2)

Publication Number Publication Date
CN109508178A true CN109508178A (zh) 2019-03-22
CN109508178B CN109508178B (zh) 2021-12-07

Family

ID=65746229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811133177.3A Active CN109508178B (zh) 2018-09-27 2018-09-27 一种程序开发方法及装置

Country Status (1)

Country Link
CN (1) CN109508178B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976748A (zh) * 2019-02-28 2019-07-05 南京南瑞继保电气有限公司 一种程序处理方法、终端、服务器及计算机存储介质
CN111381829A (zh) * 2020-03-06 2020-07-07 北京达佳互联信息技术有限公司 在线编程方法、装置、电子设备和存储介质
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN112015427A (zh) * 2020-08-21 2020-12-01 广州欢网科技有限责任公司 多种编译环境的搭建方法、装置及电子设备
CN112256278A (zh) * 2020-11-09 2021-01-22 Oppo广东移动通信有限公司 编译方法、装置、设备及存储介质
CN112269565A (zh) * 2020-10-30 2021-01-26 杭州电子科技大学 基于容器的边缘设备运行方法、装置和系统
CN112363803A (zh) * 2020-11-13 2021-02-12 浪潮电子信息产业股份有限公司 一种镜像构建方法、系统、设备及介质
CN112463123A (zh) * 2020-11-25 2021-03-09 北京字跳网络技术有限公司 任务编译方法、装置、网络节点、系统及存储介质
CN113064595A (zh) * 2021-03-22 2021-07-02 北京北信源软件股份有限公司 一种基于Docker镜像的QT应用程序编译方法和装置
CN115955365A (zh) * 2023-03-14 2023-04-11 之江实验室 一种内生安全的网络编译系统及方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2517101A1 (en) * 2009-12-21 2012-10-31 Nokia Corp. A method, apparatuses and a system for compilation
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106933635A (zh) * 2017-03-15 2017-07-07 北京搜狐新媒体信息技术有限公司 Docker镜像生成方法及Docker容器
CN107678756A (zh) * 2017-09-29 2018-02-09 千寻位置网络有限公司 一种基于Docker的Web应用一键发布方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2517101A1 (en) * 2009-12-21 2012-10-31 Nokia Corp. A method, apparatuses and a system for compilation
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN106933635A (zh) * 2017-03-15 2017-07-07 北京搜狐新媒体信息技术有限公司 Docker镜像生成方法及Docker容器
CN107678756A (zh) * 2017-09-29 2018-02-09 千寻位置网络有限公司 一种基于Docker的Web应用一键发布方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976748A (zh) * 2019-02-28 2019-07-05 南京南瑞继保电气有限公司 一种程序处理方法、终端、服务器及计算机存储介质
CN111381829A (zh) * 2020-03-06 2020-07-07 北京达佳互联信息技术有限公司 在线编程方法、装置、电子设备和存储介质
CN111399865A (zh) * 2020-04-21 2020-07-10 贵州新致普惠信息技术有限公司 一种基于容器技术自动构建目标文件的方法
CN112015427A (zh) * 2020-08-21 2020-12-01 广州欢网科技有限责任公司 多种编译环境的搭建方法、装置及电子设备
CN112269565A (zh) * 2020-10-30 2021-01-26 杭州电子科技大学 基于容器的边缘设备运行方法、装置和系统
CN112256278A (zh) * 2020-11-09 2021-01-22 Oppo广东移动通信有限公司 编译方法、装置、设备及存储介质
CN112363803A (zh) * 2020-11-13 2021-02-12 浪潮电子信息产业股份有限公司 一种镜像构建方法、系统、设备及介质
CN112363803B (zh) * 2020-11-13 2022-06-07 浪潮电子信息产业股份有限公司 一种镜像构建方法、系统、设备及介质
CN112463123A (zh) * 2020-11-25 2021-03-09 北京字跳网络技术有限公司 任务编译方法、装置、网络节点、系统及存储介质
CN113064595A (zh) * 2021-03-22 2021-07-02 北京北信源软件股份有限公司 一种基于Docker镜像的QT应用程序编译方法和装置
CN115955365A (zh) * 2023-03-14 2023-04-11 之江实验室 一种内生安全的网络编译系统及方法

Also Published As

Publication number Publication date
CN109508178B (zh) 2021-12-07

Similar Documents

Publication Publication Date Title
CN109508178A (zh) 一种程序开发方法及装置
WO2021098148A1 (zh) 一种软件编译方法、装置及电子设备和存储介质
CN104793946B (zh) 基于云计算平台的应用部署方法和系统
KR101038965B1 (ko) 테스트 시스템 구성 방법, 컴퓨터 판독가능 매체 및 컴퓨팅 시스템
CN107368313B (zh) 代码检测方法、装置及电子设备
US9990458B2 (en) Generic design rule checking (DRC) test case extraction
CN103164523A (zh) 数据一致性检查方法、装置及系统
WO2016026328A1 (zh) 一种信息处理方法、装置及计算机存储介质
CN112068852B (zh) 基于国产服务器的开源软件安装方法、系统及设备和介质
CN108923997B (zh) 一种基于python的云服务节点自动测试方法及装置
CN110716845B (zh) 一种Android系统的日志信息读取的方法
US10929108B2 (en) Methods and systems for verifying a software program
US20110209004A1 (en) Integrating templates into tests
CN111782207A (zh) 任务流代码生成方法、装置、设备及存储介质
WO2023039741A1 (zh) 基于微服务体系的在线开发方法、装置、设备及存储介质
CN115599618B (zh) 寄存器动态改配验证方法、装置、存储介质和处理器
CN116450107B (zh) 低代码平台二次开发软件的方法、装置、电子设备
CN113238739A (zh) 一种插件开发和数据获取方法、装置、电子设备及介质
US10606569B2 (en) Declarative configuration elements
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
CN114546823B (zh) 用于重现逻辑系统设计的调试场景的方法及相关设备
CN111629200A (zh) 一种快速检测差分包可靠性的方法、装置及可读存储介质
CN109358972B (zh) 中间件客户端的日志管理方法、装置及计算机系统
CN114064218A (zh) 用于机器学习组件中的镜像生成方法、系统、介质及应用
CN113626307A (zh) 一种基于k8s容器平台的数据校验方法和装置

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
GR01 Patent grant
GR01 Patent grant