一种跨平台的软件编译方法及系统技术方案

技术编号:32922290 阅读:58 留言:0更新日期:2022-04-07 12:13
本发明专利技术公开了一种跨平台的软件编译方法及系统,获取若干种已知软件的编译流程配置文件和若干种已知软件的基本信息;根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序或库文件;将所有的二进制可执行程序或库文件,上传到镜像服务器;建立客户端与镜像服务器之间的通信链接;客户端通过指定命令从镜像服务器中查询软件,将所需软件的环境变量从镜像服务器加载到客户端。大大简化了用户移植软件的繁琐步骤,并通过统一的镜像服务器,使得用户使用软件变得方便,简洁,用户可以完全跳出调试代码的泥潭而专注于使用软件本身。试代码的泥潭而专注于使用软件本身。试代码的泥潭而专注于使用软件本身。

【技术实现步骤摘要】
一种跨平台的软件编译方法及系统


[0001]本专利技术涉及软件编译
,特别是涉及一种跨平台的软件编译方法及系统。

技术介绍

[0002]本部分的陈述仅仅是提到了与本专利技术相关的
技术介绍
,并不必然构成现有技术。
[0003]目前无论在各超级计算机中心,还是各高校的高性能集群,当用户在编译软件时,由于用户本地的机器和远程的机器存在CPU架构、CPU指令集、GPU架构、编译器、系统环境库等的差异,往往会在编译软件报各种意外错误,或者运行时因为缺少某些文件导致软件崩溃,软件移植成本高。每次用户运行软件前,需要手动加载复杂的目录结构下的软件的环境变量,而多用户往往使用同一账号而导致环境变量杂乱,软件使用繁琐。

技术实现思路

[0004]为了解决现有技术的不足,本专利技术提供了一种跨平台的软件编译方法及系统;
[0005]第一方面,本专利技术提供了一种跨平台的软件编译方法;
[0006]一种跨平台的软件编译方法,包括:
[0007]获取若干种已知软件的编译流程配置文件和若干种已知软件的基本信息;根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序或库文件;
[0008]将所有的二进制可执行程序或库文件,上传到镜像服务器;
[0009]建立客户端与镜像服务器之间的通信链接;
[0010]客户端通过指定命令从镜像服务器中查询软件,将所需软件的环境变量从镜像服务器加载到客户端
[0011]第二方面,本专利技术提供了一种跨平台的软件管理系统;
[0012]一种跨平台的软件管理系统,包括:客户端,所述客户端与登录节点连接,所述登录节点与镜像服务器连接,所述镜像服务器与交叉编译服务器连接;
[0013]交叉编译服务器获取若干种已知软件的编译流程配置文件和若干种已知软件的基本信息;根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序或库文件;
[0014]交叉编译服务器将所有的二进制可执行程序或库文件,上传到镜像服务器;
[0015]客户端建立与镜像服务器之间的通信链接;
[0016]客户端通过指定命令从镜像服务器中查询软件,将所需软件的环境变量从镜像服务器加载到客户端。
[0017]与现有技术相比,本专利技术的有益效果是:
[0018]通过在交叉编译服务器进行统一的编译,并生成适配多种平台架构的二进制可执行程序,大大简化了用户移植软件的繁琐步骤,并通过统一的镜像服务器,使得用户使用软件变得方便,简洁,用户可以完全跳出调试代码的泥潭而专注于使用软件本身。
附图说明
[0019]构成本专利技术的一部分的说明书附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。
[0020]图1为实施例一的方法流程图。
具体实施方式
[0021]应该指出,以下详细说明都是示例性的,旨在对本专利技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本专利技术所属
的普通技术人员通常理解的相同含义。
[0022]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本专利技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0023]在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0024]本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
[0025]实施例一
[0026]本实施例提供了一种跨平台的软件编译方法;
[0027]如图1所示,一种跨平台的软件编译方法,包括:
[0028]S101:获取若干种已知软件的编译流程配置文件和若干种已知软件的基本信息;根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序或库文件;
[0029]S102:将所有的二进制可执行程序或库文件,上传到镜像服务器;
[0030]S103:建立客户端与镜像服务器之间的通信链接;
[0031]S104:客户端通过指定命令从镜像服务器中查询软件,将所需软件的环境变量从镜像服务器加载到客户端。
[0032]进一步地,输入客户端所提供的查询软件的指令,查询到所有或者所需的软件,若需要加载使用软件,则输入加载软件的指令,镜像服务器将软件分发到客户端,并为客户端加载软件的环境变量。
[0033]进一步地,所述已知软件,包括:编译器gnu、intel,消息传递接口openmpi、intel

mpi,数学库blas、lapack、scalapack、fftw、mkl,大数据文件数据库hdf5,分子动力学模拟软件vasp、lammps、gromacs、cp2k。
[0034]进一步地,所述编译流程配置文件,包括:编译前可调参数、编译或编译指定对象、复制二进制可执行文件和运行库;
[0035]进一步地,所述已知软件的基本信息,包括:用户或开发者输入安装指令、软件的名称和版本号、编译器的名称和版本号、可选特性、依赖、目标平台、目标架构。
[0036]进一步地,根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信
息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序;具体包括:
[0037]采用一台交叉编译服务器,首先读取配置文件所提供的软件下载地址,从软件官方下载地址或者源代码镜像服务器中获取软件的源码包,并校验其哈希值确保文件的正确性;
[0038]然后,将源码包解压到指定目录下;
[0039]然后,根据配置文件提供的参数,对源码包内指定的文件(Makefile文件)的参数进行修改;
[0040]然后,根据用户或开发者输入的编译器名称和版本号、依赖和架构,调用相应的编译器和添加相应的优化选项对源码进行编译,生成目标架构的二进制可执行文件或库文件;
[0041]最后,将二进制可执行文件或库文件,按照配置文件中或默认的文件层次上传到镜像服务器中。
[0042]示例性地,所述交叉编译服务器,是指:硬件上是通用架构X86的服务器,软件上部署了能够生成其他架构平台(ARM架构平台)可执行程序的交叉编译工具链。
[0043]进一步地,所述S102:将所有的二进制可执行程序上传到镜像服务器;其中,镜本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨平台的软件编译方法,其特征是,包括:获取若干种已知软件的编译流程配置文件和若干种已知软件的基本信息;根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序或库文件;将所有的二进制可执行程序或库文件,上传到镜像服务器;建立客户端与镜像服务器之间的通信链接;客户端通过指定命令从镜像服务器中查询软件,将所需软件的环境变量从镜像服务器加载到客户端。2.如权利要求1所述的一种跨平台的软件编译方法,其特征是,客户端获取查询软件的指令,查询到所有或者所需的软件,若需要加载使用软件,则输入加载软件的指令,镜像服务器将软件分发到客户端,并为客户端加载软件的环境变量。3.如权利要求1所述的一种跨平台的软件编译方法,其特征是,所述已知软件,包括:编译器、消息传递接口、数学库、大数据文件数据库或分子动力学模拟软件。4.如权利要求1所述的一种跨平台的软件编译方法,其特征是,所述编译流程配置文件,包括:编译前可调参数、编译或编译指定对象、复制二进制可执行文件和运行库。5.如权利要求1所述的一种跨平台的软件编译方法,其特征是,已知软件的基本信息,包括:用户或开发者输入安装指令、软件的名称和版本号、编译器的名称和版本号、可选特性、依赖、目标平台、目标架构。6.如权利要求1所述的一种跨平台的软件编译方法,其特征是,根据若干种已知软件的编译流程配置文件和若干种已知软件的基本信息,将每种已知软件的编译流程配置文件,编译成适配多种平台的二进制可执行程序;具体包括:采用一台交叉编译服务器,首先读取配置文件所提供的软件下载地址,从软件官方下载地址或者源代码镜像服务器中获取软件的源码包,并校验其哈希值确保文件的正...

【专利技术属性】
技术研发人员:涂阳边卓许荣港韩昊
申请(专利权)人:济南超级计算技术研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1