来源 :华为开发者社区
从今天起,我们将围绕:将软件从x86Linux平台移植到鲲鹏Linux平台的移植指导,以及移植过程中遇到的相关问题处理方法,包括编译环境准备、编译脚本和源码修改等内容,为开发者带来一系列文章。
特别推荐给执行软件移植的研发工程师和技术支持工程师阅读参考!也欢迎开发者们在评论区留言交流~
按照翻译方式的不同,高级语言通常可以分为两类:一类是
编译翻译
,一类是
解释翻译
,分别对应着编译型语言和解释型语言。
典型的如C、C++语言,都属于编译型语言,源代码到执行的过程概括如下图所示。C/C++编译好的程序是机器指令,由操作系统加载到存储器(一般为内存)后由CPU直接执行。
典型的如Java、Python语言,都属于解释型语言,源代码到执行的过程概括如下图所示。Java/Python编译好的程序是平台无关的字节码,由虚拟机解释执行,虚拟机完成平台差异的屏蔽。
基于编译型语言开发的应用程序,例如C/C++语言应用程序,其编译后得到可执行程序,可执行程序执行时依赖的指令是CPU架构相关的。因此,基于x86架构编译的C/C++语言应用程序,无法直接在鲲鹏服务器运行,需要进行移植编译,移植编译过程中遇到的问题,我们将在以后的文章中提供详细的解决方法。
基于解释型语言开发的应用程序,是CPU架构不相关的,例如Java、Python,将这类应用程序移植到鲲鹏服务器,无需修改和重新编译,按照与x86一致的方式部署和运行应用程序即可。Java应用程序jar包内,可能包含基于C/C++语言开发的so库文件,这类so库需要移植编译,移植编译so库遇到的问题可以参考本系列下一篇文章提供的方法解决,使用编译得到的so库重新打包jar包。
C/C++程序移植需要安装编译器,推荐使用gcc7.3及以上版本(最低不低于4.8.5),下载安装参考链接:
http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/
https://gcc.gnu.org/install/
-END-
免责声明:整理文章为传播相关技术,版权归原作者所有,如有侵权,请联系删除
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!