本发明专利技术涉及一种跨平台的系统编译构建方法,该方法通过cmake编译工具进行跨平台编译,具体包括如下步骤:1)参数设定模块初始化开发环境变量、设置编译配置信息;2)编译脚本上传模块上传用户编写的cmake脚本文件;3)启动cmake编译工具,cmake编译工具读取接收到的cmake脚本文件并解析,根据当前平台和解析到的编译参数利用当前平台的编译器进行编译处理,生成编译结果;4)发布打包模块根据步骤3)获得的编译结果生成压缩包并发布。与现有技术相比,本发明专利技术具有提高开发人员的工作效率、便于扩展集成等优点。
【技术实现步骤摘要】
【专利摘要】本专利技术涉及,该方法通过cmake编译工具进行跨平台编译,具体包括如下步骤:1)参数设定模块初始化开发环境变量、设置编译配置信息;2)编译脚本上传模块上传用户编写的cmake脚本文件;3)启动cmake编译工具,cmake编译工具读取接收到的cmake脚本文件并解析,根据当前平台和解析到的编译参数利用当前平台的编译器进行编译处理,生成编译结果;4)发布打包模块根据步骤3)获得的编译结果生成压缩包并发布。与现有技术相比,本专利技术具有提高开发人员的工作效率、便于扩展集成等优点。【专利说明】
本专利技术涉及一种编译方法,尤其是涉及。
技术介绍
大部分计算机语言从绝对意义而言,都是跨平台的:因为都是以高级的、人类可读的方式来对CPU发号指令,这样也就没必要依赖于任何操作系统。但对于大多数的操作系统,系统的API (Application Programming Interface)函数或者类库不一定是相同的,虽然C/C++语言是跨平台的,但Windows下用到的Win32API的C++应用程序,一般就不能在Unix机器上编译,不同编译器对语言规范的解释也有所差异。这样的话,在针对不同的系统进行编译构建之前,程序就得加以考虑不同平台的适应性。对于跨平台编译,我们通常的处理方式是针对不同的操作平台编写一份对应该平台的脚本文件。例如:在windows平台编译,可以用IDE工具(如VS),但是当项目和工程巨大时,IDE工具的配置就不方便,就会用到批处理文件来编写全部的编译过程。Linux (unix)平台的编译也是,可以用make来编写一套完整的编译过程。如果需改发布,则需要在编译脚本中加上打包的过程。然而,编译脚本的工作及其繁琐,而且随着项目的变化,还需要不断的修改编译脚本。开发人员难于维护整个编译过程,出现问题时难于调试。在编译过程中的问题会给开发人员带来较大困扰,造成工作效率的低下。因此一套支持多种平台的编译系统能大大地减轻工程编译和工程管理的压力,提高软件开发人员的工作效率。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供,解决现有技术中编译脚本难于编写和维护的问题,支持后续的功能扩展。本专利技术的目的可以通过以下技术方案来实现:—种跨平台的系统编译构建方法,该方法通过cmake编译工具进行跨平台编译,具体包括如下步骤:I)参数设定模块初始化开发环境变量、设置编译配置信息;2)编译脚本上传模块上传用户编写的cmake脚本文件;3)启动cmake编译工具,cmake编译工具读取接收到的cmake脚本文件并解析,根据当前平台和解析到的编译参数利用当前平台的编译器进行编译处理,生成编译结果;4)发布打包模块根据步骤3)获得的编译结果生成压缩包并发布。步骤I)中,所述的编译配置信息包括编译版本、编译平台信息和生成文件信息,所述的生成文件信息包括动态库、静态库或可执行文件。所述的cmake脚本文件包括多个存储有编译过程和不同的编译方式的cmake模块文件。所述的平台包括Windows平台或Linux平台。执行所述步骤3)后,在不同平台下,生成不同目标文件:Windows平台下,生成可直接打开进行编译和生成的工程文件;Linux平台下,生成可用make构建生成目标文件的makefile文件。本专利技术通过整合不同平台编译环境,实现跨平台编译的方法,以达到简化编译过程的目的,从而使得不同平台的编译和构建过程变得简单和易于控制,同时便于开发人员的维护。通过本专利技术,用户可以在不同的操作平台编译代码,用简单的配置和参数来实现不同的编译结果和编译信息,能够大大减少软件开发测试人员的工作量,提高工作效率。本专利技术能解决现有技术中编译脚本难于编写和维护的问题,而且还支持后续的功能扩展,提供更多的软件的编译控制方式。本专利技术方法将会解决这样的问题:1.编译平台差异性的问题,实现编译方式的统一;2.维护和修改编译脚本的简单方法;3.编译环境变量的设置和修改;4.编译过程和结果的自定义;5.打包和版本管理。与现有技术相比,本专利技术可以达到如下效果:I)由于跨平台的编译已经针对不同的平台做了相应的处理,在不同平台编译时,将会执行同样的操作,而且也不用去编写不同的编译脚本文件,这样可以大大减少开发人员对编译系统的维护工作,提高开发人员的工作效率。2)通过cmake简单的语法规则,可以根据它的规则制定一套完整的方案,可以将生成目标类型(动态库、静态库、可执行程序等),生成目标的版本(Debug'Release等)动态地传给编译系统,这样编译系统在解析时,会自动根据这些内容来生成需要的目标,这进一步的简化和提高的编译过程,在项目的数目增长较大时,优势会越发的明显。3)解决依赖,在代码的增长中,很容易出现A模块依赖B模块,或者B模块又会依赖C模块,这样的模块依赖关系用脚本文件来实现会很麻烦,而且当模块依赖变化时不易控制。本专利技术能够解决模块之间的依赖关系问题,而且对于子模块的变化(增加或者减少)的控制也十分方便。4)代码的打包和发布会更简单,通过简单的命令,任何开发或者测试人员都可以自己打包,生成自己需要的压缩包文件等,而不在需要专门的发布系统来管理和生成发布包。5)便于扩展新的功能。编译系统可以很简单地添加新的功能。开发人员可以将自己需要的功能用cmake的简单语法写成一个cmake的功能模块,然后就可以加入到cmake的编译系统中,这样其他人编译时也可以使用你添加的功能,扩展新功能十分的方便。6)便于集成。cmake作为一个简单的编译系统插件可以简单地集成到各种各样的持续集成系统中,方便查看和控制整个代码线的编译情况,及时修复编译错误的问题。【专利附图】【附图说明】图1为本专利技术的流程示意图;图2为实施例中配置阶段和生成阶段的流程示意图;图3为实施例中编译过程的具体流程图。【具体实施方式】下面结合附图和具体实施例对本专利技术进行详细说明。本实施例以本专利技术技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。如图1所示,,该方法通过cmake编译工具进行跨平台编译,所述的平台包括Windows平台或Linux平台等,具体包括如下步骤:I)参数设定模块初始化开发环境变量、设置编译配置信息,包括编译版本、编译平台信息和生成文件信息,所述的生成文件信息包括动态库、静态库或可执行文件。2)编译脚本上传模块上传用户编写的cmake脚本文件,所述的cmake脚本文件包括多个存储有编译过程和不同的编译方式的cmake模块文件。3)启动cmake编译工具,cmake编译工具读取接收到的cmake脚本文件并解析,根据当前平台和解析到的编译参数利用当前平台的编译器进行编译处理,生成编译结果。在不同平台下,生成不同目标文件,至少有以下两种结果:Windows平台:可以生成工程文件,该工程文件可以直接用VS打开编译,生成目标文件;可以也生成makefile,用nmake来编译,并生成目标文件;Linux平台:可以生成makefile, makefile包含所有完整的编译过程,执行make即可以编译,并生成目标。4)发布打包模块根据步骤3)获得的编译结果生成压缩包并发布,也可将文件安装到系统中。本专利技术方法本文档来自技高网...
【技术保护点】
一种跨平台的系统编译构建方法,其特征在于,该方法通过cmake编译工具进行跨平台编译,具体包括如下步骤:1)参数设定模块初始化开发环境变量、设置编译配置信息;2)编译脚本上传模块上传用户编写的cmake脚本文件;3)启动cmake编译工具,cmake编译工具读取接收到的cmake脚本文件并解析,根据当前平台和解析到的编译参数利用当前平台的编译器进行编译处理,生成编译结果;4)发布打包模块根据步骤3)获得的编译结果生成压缩包并发布。
【技术特征摘要】
【专利技术属性】
技术研发人员:刘浪,
申请(专利权)人:上海爱数软件有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。