來源 :華為開發(fā)者社區(qū)
從今天起,我們將圍繞:將軟件從x86Linux平臺移植到鯤鵬Linux平臺的移植指導,以及移植過程中遇到的相關問題處理方法,包括編譯環(huán)境準備、編譯腳本和源碼修改等內(nèi)容,為開發(fā)者帶來一系列文章。
特別推薦給執(zhí)行軟件移植的研發(fā)工程師和技術支持工程師閱讀參考!也歡迎開發(fā)者們在評論區(qū)留言交流~
按照翻譯方式的不同,高級語言通常可以分為兩類:一類是
編譯翻譯
,一類是
解釋翻譯
,分別對應著編譯型語言和解釋型語言。
典型的如C、C++語言,都屬于編譯型語言,源代碼到執(zhí)行的過程概括如下圖所示。C/C++編譯好的程序是機器指令,由操作系統(tǒng)加載到存儲器(一般為內(nèi)存)后由CPU直接執(zhí)行。
典型的如Java、Python語言,都屬于解釋型語言,源代碼到執(zhí)行的過程概括如下圖所示。Java/Python編譯好的程序是平臺無關的字節(jié)碼,由虛擬機解釋執(zhí)行,虛擬機完成平臺差異的屏蔽。
基于編譯型語言開發(fā)的應用程序,例如C/C++語言應用程序,其編譯后得到可執(zhí)行程序,可執(zhí)行程序執(zhí)行時依賴的指令是CPU架構相關的。因此,基于x86架構編譯的C/C++語言應用程序,無法直接在鯤鵬服務器運行,需要進行移植編譯,移植編譯過程中遇到的問題,我們將在以后的文章中提供詳細的解決方法。
基于解釋型語言開發(fā)的應用程序,是CPU架構不相關的,例如Java、Python,將這類應用程序移植到鯤鵬服務器,無需修改和重新編譯,按照與x86一致的方式部署和運行應用程序即可。Java應用程序jar包內(nèi),可能包含基于C/C++語言開發(fā)的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-
免責聲明:整理文章為傳播相關技術,版權歸原作者所有,如有侵權,請聯(lián)系刪除
免責聲明:本文內(nèi)容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!