當前位置:首頁 » 編程軟體 » c跨平台編譯

c跨平台編譯

發布時間: 2023-04-11 01:01:37

c語言是如何跨平台的

標准C和標准C++都是源代碼級跨平台的,nbsp;也就是說你用標准C/C++寫的代碼在windows下編譯後就可以windows下運行,nbsp;在unix/linux下編譯後就可以在unix/linux下運行.跨硬體平台是靠編譯器的,比如要輸出一個字元,C里用printf(「C「);硬體平台a用中斷A輸出,nbsp;硬體b用中斷B輸出,nbsp;那麼就得有兩個不同的編譯器,nbsp;它們都用不同的方法實現C的功能

⑵ C語言是不是跨平台的

回答可以說是也不是。
C的源代碼是跨平台的而編譯後的目標文件和可執行文件就不是跨平台的。

因為針對不同的平台會用不同的編譯器來編譯和鏈接同樣的源代碼。

當然如果你的代碼里有針對某種特定平台的代碼的話(比如Windows API調用),那麼用針對其它平台的編譯器就會出錯。

一般來說如果想寫真正跨平台的源代碼會用#define 來實現有條件的編譯。

⑶ 為什麼說c語言是跨平台語言,不就是編譯器嗎

C語言---是標准,定義了一些條條框框,文字上的東西如C89,C99如ISO/IEC
C99
編譯器是根據這些條條框框來做的,不能違反(但也不是那麼特別死要求的),對於它來說,標准就好像是法律。
說到跨平台,並不是講每一個WIN下的可編譯正確運行的C代碼,就能100%放到LINUX或*bsd下運行的,據我的一點經驗,寫代碼人是否按照標准規范寫的,用的非標准庫函數是否在WIN及UNIX平台下都能正常,都有限制的

⑷ C語言到底有沒有跨平台性

C語言本來就是跨平台的,不過是「源碼級」跨平台。本來就是存在針對linux、windows的不同的編譯器。所以有C語言「一次編寫,到處編譯」,Java是「一次編譯,到處運行」的說法。

如C++創始人酸溜溜的說法,JVM造了一個新的平台,讓所有Java程序只能在這個平台上運行,而C和C++的代碼可以在幾十個不同的平台上運行,從這個角度而言,C和C++是跨平台的,而Java不是

⑸ c語言可跨平台嗎

你說的跨平台是指什麼?操作系統平台么?
如果是指操作系統平台的話,那要看是什麼操作系統了,同一個程序的微軟之間的系統平台之間的c語言都是相同的,但是如果是linux和微軟操作系統之間的話就不同了

⑹ 跨平台C,C++代碼注意的事項及如何編寫跨平

跨平台,或者平台無關,是指程序代碼在不同環境下具有完全相同的預期功能,可以互相替換。C語言的跨平台一般含義是:在指定的硬體和軟體平台下能夠正常編譯的C語言源代碼,在代碼滿足一定跨平台性的要求後,無需修改即可在另一硬體或軟體下編譯生成目標文件。這樣,源代碼是跨平台的。目標代碼一般都是對應平台的本地代碼,不能跨平台(例如.obj和.elf就不能直接混用;Windows和Linux上的可執行文件一般也不互相兼容)。C語言程序跨平台的實現必需編譯環境的支持。對於庫,提供源文件,或者提供不同平台下對應編譯環境支持的目標文件(例如.lib/.a),可以實現跨平台開發。無法跨平台的部分,是平台相關的介面(例如一些操作系統API),庫通過實現一定的兼容層可以克服平台障礙(前提是硬體支持)。注意C語言的標准庫在任何支持相同版本標准上的平台上的行為都是一致的(除了標準定義implemention defined或者undefined的部分,這些部分應該盡量避免使用),是跨平台的;同其它跨平台庫一樣,是實現跨平台開發的有力用具。在Win/Linux下進行跨平台開發,編譯器主要用GCC;可以使用經過配置的MinGW、Cygwin環境;跨平台GUI開發可以考慮wxWidgets等庫。
至於Java,它事實上就是一個平台(JVM,Java虛擬機),所謂的「一次編譯,到處執行」的跨平台支持是通過不同的Java編譯器和JVM來實現的。Java程序的源代碼和目標代碼都可以跨平台。但是不同的JVM可能實現了不同的特定功能,基於特定功能的部分無法保證跨平台。此外,native的本機代碼和JVM之外的平台相關,和C一樣,也無法保證跨平台。

⑺ C語言是如何編譯與組建的,跨平台性

c語言能跨平台是因為各個平台有相應的c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能,但是這些二進制文件本身是不一樣的
exe就是2進制的,但不完全是原來程序的代碼,還包括了windows系統的一些代碼

⑻ c語言是如何跨平台的

c語言能跨平台主要因為各個平台包括DOS,Windows,Linux,UNIX等都有c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能(不包括跨平台的系統調用)。但是這些二進制文件不一樣,Linux中的可執行文件一般情況下都不能在Windows中運行,因為他們是兩個完全不同的操作系統,有不同的內核,不同的系統調用。但編譯器會根據不同的平台生成不同的代碼,使二進制文件能在專有的平台中運行,並且實現相同的功能。

跨硬體平台也是類似,在各種平台上,如x86,x86_64,Sparc,ppc,Motorola等都有相應的編譯器。編譯器會把相同的c語言代碼編譯成不同的機器指令,這樣就可以實現跨平台了。

總而言之,跨平台主要是靠各個平台上的編譯器。

熱點內容
能耗資料庫 發布:2025-07-15 12:50:55 瀏覽:328
謎宮腳本 發布:2025-07-15 12:40:07 瀏覽:864
安卓手機語音操作在哪裡開啟 發布:2025-07-15 12:18:49 瀏覽:283
安卓導航儀上網卡插哪裡 發布:2025-07-15 12:01:58 瀏覽:454
把文件編譯成數據 發布:2025-07-15 11:53:16 瀏覽:542
mt4如何修改密碼 發布:2025-07-15 11:53:16 瀏覽:215
2021思域新款買哪個配置 發布:2025-07-15 11:33:24 瀏覽:772
路由搭建http伺服器 發布:2025-07-15 11:26:45 瀏覽:724
消遣解壓 發布:2025-07-15 11:26:43 瀏覽:393
ICL編譯 發布:2025-07-15 11:26:32 瀏覽:665