首先,我給你介紹一下可以跨平臺和不可以跨平臺是為什么,有什么區(qū)別。
舉個例子,c語言,有時候被稱作中級語言,因?yàn)樗炔皇峭耆牡图壵Z言,又算不上高級語言。在很大程度上,它也被稱作不能跨平臺的(或者說是源碼級可以跨平臺)。
為啥這樣呢?
因?yàn)槊糠NCPU架構(gòu)的的指令集不一樣,所以如果c語言編譯成了二進(jìn)制文件(也就是機(jī)器碼),那么它只能在對應(yīng)的機(jī)器上運(yùn)行了。
那為什么說c在源碼級可以跨平臺呢?
因?yàn)槊總€平臺都支持編譯c語言,所以c語言在不同平臺上面編譯的最終二進(jìn)制文件是不一樣的,所以看作是源碼級別的跨平臺。
為啥Python可以跨平臺?
因?yàn)镻ython是將這些自己的指令,最終轉(zhuǎn)換成了c語言指令集,然后再c語言的指令集再進(jìn)行編譯為機(jī)器碼,然后運(yùn)行,這也是為什么python的性能差的原因了(當(dāng)然,有很多提速的辦法)。
那么為什么有的包不可以跨平臺呢?
因?yàn)楹芏喟怯蒫語言(還有其他的很多語言)來寫的,那么這些語言所編譯的二進(jìn)制文件無法跨平臺,所以,python的包無法跨平臺。
聯(lián)系客服