導航:首頁 > 源碼編譯 > 一套代碼編譯到多個平台

一套代碼編譯到多個平台

發布時間:2023-08-02 15:58:58

1. java的跨平台是不是指同一個源程序在windows電腦上運行就能得到一個適合windows電腦的

不是,Java的跨平台,是指「一次編譯,到處運行」,是指Java源代碼編譯後的位元組碼(.class)文件可以在不同操作系統上運行(Windows, linux, MAC等),而這些操作系統上需要有JRE(Java Runtime Enviorment)即虛擬機。

至於Android,只不過是借用了Java編程語言,是Google開發的另一個平台,它用的虛擬機和一般意義上的Java虛擬機JVM(Oracle /SUN的)不一樣,叫Dalvik VM,它還需要把Java標准位元組碼文件(.class) 轉換為Davik虛擬機代碼(.dex)。apk安裝包實際上就是壓縮了dex文件的壓縮包。

這個跨平台,不包括Android的,這主要是歷史原因,Oracle還和Google打了場官司,你可以了解一下。Oracle對Java每推出一個新版本JDK,Google就要快速跟進,創造一些工具(ADT)讓其能轉化為Davik VM代碼。

2. C++ 定義適應不同平台調用不同代碼的方法

1、一般是在編譯時指定,比如在windows編譯,就指定__WINDOWS__宏,所有和windows有關的代碼都被這個宏包圍,於是就會被編譯,而由於__LINUX__沒有定義,所以linux相關的代碼不會被編譯。

2、一般設計好一個api,假設為f,在頭文件f.h中聲明為
void f();

為了簡單起見,我們放在一個實現文件中,如果復雜可以分成多個文件。這里實現文件為f.cpp
void f()
{
#if defined(__WINDOWS__)
// windows specific code
#elif defined(__LINUX__)
// linux specific code
#else
# error "unknown platform"
#endif
}

若分成多個實現文件,不必像單個文件那樣將平台相關代碼用宏組織,理由是編譯時會編譯平台特定文件,可以這么組織文件。命名文件時加上平台縮寫,比如上f.cpp,windows上命名為f.win32.cpp,linux上命名為f.linux.cpp,這樣可以放在一個文件夾中組織,或者將不同實現文件放在不同文件夾中,windows上我們建立win32文件夾,linux上我們建立linux文件夾。如此組織,編譯時,需要為不同平台編譯不同文件。

3. 前端一套代碼實現多端適配 有哪些方案

可以使用成熟的框架來實現適配,比如bootstrap,element-ui. 另外,也可以自己寫css,實現寬度自適應,原理就是元素的寬度用百分比來設定。

4. Java的跨平台特性是指它的源代碼可以在多個平台運行


Java代碼是位元組代碼,就像樓上所說的Java是運行在虛擬機上的,虛擬機將Java位元組代碼和具體的平台給隔開,不同平台上面運行的虛擬機是不一樣的,而這些虛擬機對Java代碼要求是一樣的,所以Java可以在多個平台運行

閱讀全文

與一套代碼編譯到多個平台相關的資料

熱點內容
狄克斯特拉演算法是什麼 瀏覽:675
室內裝飾材料pdf 瀏覽:633
gitbook命令行 瀏覽:1000
啟動zookeeper命令 瀏覽:527
健身館app怎麼樣 瀏覽:314
python可視化項目 瀏覽:442
安卓機怎麼辨別蘋果機真假 瀏覽:711
微信小程序源碼轉成抖音 瀏覽:654
優省油app怎麼沒法下載 瀏覽:72
pdf格式轉換excel 瀏覽:625
高爾夫6壓縮機響 瀏覽:310
優盤文件夾自動恢復 瀏覽:76
有伺服器怎麼製作小程序 瀏覽:132
程序員怎麼避開外包公司 瀏覽:604
刺激戰場國際服體驗伺服器滿了怎麼辦 瀏覽:487
python的number是什麼意思 瀏覽:539
剪映app怎麼把視頻鏡像 瀏覽:464
python長連接消息提醒 瀏覽:767
山西省美術演算法 瀏覽:95
華為手機怎麼不給別人刪app 瀏覽:814