跨平台編譯
1. 哪個C++編譯器是跨平台的
C++編譯器沒有跨平台, 因為編譯生成的可執行程序或者庫文件是和操作系統相關的。 windows下一般是使用Visual Studio編譯器; linux下用gcc編譯。
不含調用系統API的C/C++代碼 才可以在多平台下編譯
2. 請問下面的程序,編譯之後,是否可以【跨平台運行】呢
若在A平台編譯則理論上不可拿到B平台運行,除非在B平台重新編譯!典型例子就是Windows和Linux/Unix,但是這段程序無需修改就可以跨平台編譯。
3. 如何在 Windows 跨平台編譯 Mac 程序
你要在mac里安裝go的編譯環境
然後 把要編譯的文件復制過去
話說go好像支持跨平台編譯
安裝go語言 之前貌似要先安裝gcc 還要設置環境變數
4. c語言為什麼能跨平台或是如何跨平台的
c語言能跨平台是因為各個平台有相應的c編譯器,只要源代碼相同,編譯器編譯出來的二進制文件就會實現相同的功能,但是這些二進制文件本身是不一樣的
exe就是2進制的,但不完全是原來程序的代碼,還包括了windows系統的一些代碼
科普一下,C最早是出現在Unix下的,Windows那都是後話了,C出現的時候Windows還沒開發出來呢。
C有個比較特別的稱呼,叫中級語言,因為它有高級語言的特性又能跟底層硬體很好的交互所以才有這么個說法。DOS時代在C裡面嵌上一段匯編直接從並口讀個數上來那是很流行的,現在沒見誰在VC裡面這么干吧。Windows也不讓啊。想訪問硬體怎麼也得通過驅動。
說遠了,C在多種平台下可以實現代碼級的共享,跨平台就需要重新編譯了。
但是,我也見過有的軟體是可以在多種平台上運行了,可能有什麼特別的技術,可以先識別一下操作系統,再運行相應的代碼。這個應該是在編譯的時候有特殊的技巧。
C編譯、連接器網上有現成的代碼,一般不是很專業的技術人員沒有去研究它。我一直把玩編譯原理的視為天人,有能力把編譯原理那本書看完的就很不容易了,再要能領會其中精要那就成才了,能把龍書虎書鯨書都搞明白的那就是一流專家了。
5. 跨平台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一樣,也無法保證跨平台。
6. 關於JAVA跨平台編譯的疑問
java最大的優勢就是跨平台,因為java實在JVM,也就是JDK安裝後形成的java虛擬機中運行的,所以,只要你的電腦或者說是操作系統只要有jvm就可以運行java程序,比如你在window下面編譯的WEB項目打成war包,你發布的環境可能是linux的,這都是可以通用的,有時間你可以自己安裝一個linux虛擬機在電腦上,自己嘗試一下,發布程序這些操作,慢慢就懂了。
7. C語言到底有沒有跨平台性
C語言本來就是跨平台的,不過是「源碼級」跨平台。本來就是存在針對linux、windows的不同的編譯器。所以有C語言「一次編寫,到處編譯」,Java是「一次編譯,到處運行」的說法。
如C++創始人酸溜溜的說法,JVM造了一個新的平台,讓所有Java程序只能在這個平台上運行,而C和C++的代碼可以在幾十個不同的平台上運行,從這個角度而言,C和C++是跨平台的,而Java不是
8. Java語言是如何做到可移植性強、跨平台、「一次編譯到處運行」的呢
因為java代碼是運行在JVM上的,不同的平台有不同的JVM,如Windows和Mac上的運行同一款游戲,他們的實現方式肯定不一樣,但你都能讀取游戲的存檔文件。你不需要知道JVM在不同平台的實現方式,但他們解析java的class文件是一樣的邏輯,就是這樣java實現跨平台的。
9. C語言是如何編譯與組建的,跨平台性
科普一下,C最早是出現在Unix下的,Windows那都是後話了,C出現的時候Windows還沒開發出來呢。
C有個比較特別的稱呼,叫中級語言,因為它有高級語言的特性又能跟底層硬體很好的交互所以才有這么個說法。DOS時代在C裡面嵌上一段匯編直接從並口讀個數上來那是很流行的,現在沒見誰在VC裡面這么干吧。Windows也不讓啊。想訪問硬體怎麼也得通過驅動。
說遠了,C在多種平台下可以實現代碼級的共享,跨平台就需要重新編譯了。
但是,我也見過有的軟體是可以在多種平台上運行了,可能有什麼特別的技術,可以先識別一下操作系統,再運行相應的代碼。這個應該是在編譯的時候有特殊的技巧。
C編譯、連接器網上有現成的代碼,一般不是很專業的技術人員沒有去研究它。我一直把玩編譯原理的視為天人,有能力把編譯原理那本書看完的就很不容易了,再要能領會其中精要那就成才了,能把龍書虎書鯨書都搞明白的那就是一流專家了。
說白了C語言是如何編譯與組建的,大道理誰都知道,具體怎麼實現的,沒幾個懂的。所以對您的提問我只能坐這等著高手了!
10. 怎麼跨平台編譯
你可是試試將圖片、視頻等資源放在qrc資源文件中,使用資源路徑進行調用,這樣生成的可執行文件就不需要依賴外部文件系統資源了。