回覆列表
-
1 # 遊戲的小屋子
-
2 # 使用者6602652349876
Linux原始碼可以在windows作業系統下編譯。
對於一般的c語言程式,程式碼的這種可移植性會受到一定的限制。因為我們在編寫程式時,會或多或少使用一些某些系統特有的函式庫。這是因為ANSI C是C語言的標準,但ANSI C幾乎很難完成複雜程式的開發。任何C語言的編譯器都在ANSI C的基礎上擴充, 如TC,VC等都對ANSI C進行了擴充,加入了自己的規則和庫之類的。所以他們之間一般不具有通用性。此外在各個作業系統上的應用程式通常要呼叫相應的作業系統提供的藉口,這也為程式碼的跨平臺建立了一層障礙。
核心程式不同於普通的程式碼,由於它處在一個比較接近底層的地位,因此不能隨意使用其它第三方函式庫。此外系統核心與一般應用程式不同,它的執行不依賴於任何作業系統(它本身就是一個作業系統),所以,只要我們的編譯器可以生成x86的二進位制程式碼,我們就可以在不同平臺進行編譯。
Linux核心僅僅用匯編語言和語言編寫的,沒有使用任何第三方軟體或者庫函式,即由ANSI C編寫,沒有使用Linux函式庫。因此可以在windows下編譯。
1.微控制器很少跑作業系統,arm嵌入式系統如果不跑操縱系統,當然用IAR,KEIL等等整合開發環境也可以編譯出來程式,但是如果要跑作業系統,目前主流的都是跑的基於linux核心的作業系統。
2.既然使用的是基於linux的系統,那在linux下用交叉編譯環境編譯出程式就是自然而然的。就好像你要寫一個windows下執行的程式,自然首選是在windows下開發。
3.搭建linux的編譯環境很簡單。即使是windows的系統,裝個虛擬機器,安裝一下交叉編譯環境,也就可以了。
4.搭建windows編譯環境的方法基本都是先安裝一個類linux環境的軟體,比如cgwin,然後和linux下步驟基本相同,沒多大區別。
5.你想用windows的環境,應該是對linux不熟悉吧。但是,學習linux是做嵌入式省不了的,是必須的。我也是這麼一步一步走來的,推薦從微控制器裸奔(無作業系統)過渡到ARMlinux的一本書《linuxc一站式學習》