win7交叉編譯arm
① 如何交叉編譯期待ARM
找到所有的 AC_MSG_ERROR的([期待不能跨編譯])在 configure.in 行,替換他們用硬$ C $裁線是連接codeS「正確」的答案。
所以,有做的第一件事:如果你還在應用修補程序後,收到這個錯誤,那麼這個補丁必須錯過之一;你應該找到它,解決它了。
要檢查的另一件事是沿著「是它插入」行 - 你辦好相關自動工具正確再生配置修補後文件中的 configure.in 文件?它看起來像這些補丁只打補丁 configure.in ,所以如果你沒有做你的再生會不會改變實際運行任何東西。
一旦你過去的即時錯誤,另外還有一點,你找到了修補程序都是TimeSys公司的linux(按名稱),這可能會或可能不會匹配您的系統 - 和,特別是可能甚至不是一個ARM系統。 (我看到,現在TimeSys的支持ARM,但我與他們的熟悉程度為PowerPC)。由於它與硬codeD答案更換自動測試,這些問題的答案很容易被錯誤的。我建議你檢查各種線路在補丁改變,以確認他們的答案在硬體實際上是正確的code。
② 如何交叉編譯出arm
arm交叉編譯就是在非arm平台編譯arm平台運行的代碼, 需要安裝交叉編譯工具, 比如x86平台上的arm gcc工具. 之後配置gcc為 該編譯命令gcc-arm....編譯結果下載到arm就可以運行了.
③ 如何設置arm開發板交叉編譯工具鏈
如何設置arm開發板交叉編譯工具鏈
1.13.6 Compile菜單
按Alt+C可進入Compile菜單, 該菜單有以下幾個內容,如圖所示:
1. Compile to OBJ:將一個C源文件編譯生成.OBJ目標文件, 同時顯示生成的文件名。其熱鍵為 Alt+F9。
2. Make EXE file:此命令生成一個.EXE的文件, 並顯示生成的.EXE文件名。其中.EXE文件名是下面幾項之一:
1) 由Project/Project name說明的項目文件名。
2) 若沒有項目文件名, 則由Primary C file說明的源文件。
3) 若以上兩項都沒有文件名, 則為當前窗口的文件名。
3. Link EXE file:把當前.OBJ文件及庫文件連接在一起生成.EXE文件。
4. Build all:重新編譯項目里的所有文件, 並進行裝配生成.EXE文件。該命令不作過時檢查 (上面的幾條命令要作過時檢查, 即如果目前項目里源文件的日期和時間與目標文件相同或更早, 則拒絕對源文件進行編譯)。
5. Primary C file:當在該項中指定了主文件後, 在以後的編譯中, 如沒有項目文件名則編譯此項中規定的主C文件, 如果編譯中有錯誤, 則將此文件調入編輯窗口, 不管目前窗口 中是不是主C文件。
6. Get info:獲得有關當前路徑、源文件名、源文件位元組大小、編譯中的錯誤數目、可用空間等信息,如圖:
1.13.7 Project菜單
④ 如何交叉編譯開源庫
所謂的搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。在該環境下編譯出嵌入式Linux系統所需的操作系統、應用程序等,然後再上傳到目標機上。
交叉編譯工具鏈是為了編譯、鏈接、處理和調試跨平台體系結構的程序代碼。對於交叉開發的工具鏈來說,在文件名稱上加了一個前綴,用來區別本地的工具鏈。例如,arm-linux-表示是對arm的交叉編譯工具鏈;arm-linux-gcc表示是使用gcc的編譯器。除了體系結構相關的編譯選項以外,其使用方法與Linux主機上的gcc相同,所以Linux編程技術對於嵌入式同樣適用。不過,並不是任何一個版本拿來都能用,各種軟體包往往存在版本匹配問題。例如,編譯內核時需要使用arm-linux-gcc-4.3.3版本的交叉編譯工具鏈,而使用arm-linux-gcc-3.4.1的交叉編譯工具鏈,則會導致編譯失敗。
那麼gcc和arm-linux-gcc的區別是什麼呢?區別就是gcc是linux下的C語言編譯器,編譯出來的程序在本地執行,而arm-linux-gcc用來在linux下跨平台的C語言編譯器,編譯出來的程序在目標機(如ARM平台)上執行,嵌入式開發應使用嵌入式交叉編譯工具鏈。
工具/原料
電腦系統:win7系統。虛擬機系統:workstation6.5 。虛擬機安裝的linux版本:fedora9.0。內核:linux2.6.25 。
方法/步驟
1
我使用的交叉編譯工具鏈是arm-linux-gcc-4.4.3,把它放在linux系統的路徑是圖一
2
在linux系統的路徑/home/song/share下放了交叉編譯工具鏈arm-linux-gcc-4.4.3的壓縮包,另一個版本的不用。有的人可能會問到怎麼把這個壓縮包弄到虛擬機的linux的系統的,我是通過samba服務從主機復制到虛擬機的,這里的share文件夾就是我samba伺服器的工作目錄,多了不說,這不是重點。
然後通過命令mkdir embedded 建立一個arm-linux-gcc的安裝目錄,如圖二所示。當然安裝路徑和目錄名稱「embedded」可以依自己的喜好而定。
步驟閱讀
然後通過命令將share文件夾下的arm-linux-gcc-4.4.3.tar.gz復制到這里的embedded文件夾下, 當然這里你也可以不進行這一步我這是為了方便以後管理,將arm-linux-gcc安裝到embedded文件夾下,方便以後尋找。
然後使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz將embedded文件夾下的arm-linux-gcc-4.4.3.tar.gz解壓縮安裝到當前目錄下
執行完解壓縮命令,就已經將交叉編譯工具鏈arm-linux-gcc-4.4.3安裝到linux系統上了,這里默認安裝到了圖六所示的路徑上。
接下來配置系統環境變數,把交叉編譯工具鏈的路徑添加到環境變數PATH中去,這樣就可以在任何目錄下使用這些工具。 vi /etc/profile 編輯profile文件,添加環境變數。
在profile中的位置處,添加圖八所示的紅線標注的一行,路徑就是圖六中的紅線標注的路徑後面加上/4.4.3/bin。
圖八中的路徑一定是你自己的安裝路徑,可以使用pwd命令查找一下那個bin目錄的路徑。添加完路徑後,保存退出。接下來使用命令:source /etc/profile,是修改後的profile文件生效,如圖九所示。
然後,使用命令:arm-linux-gcc -v查看當前交叉編譯鏈工具的版本信息,如圖九中的紅線標注第③行所示。很明顯 可以看到,如果不執行第②步,則查看版本信息不成功。
然後驗證交叉編譯工具鏈是否安裝成功並且可以使用,如圖九所示,隨便找一個目錄編輯一個hello源代碼。
編輯好hello.c文件後,保存退出。然後使用交叉編譯器對hello.c進行編譯,並生成可執行文件hello
這里生成的hello文件並不能像gcc編譯出來的文件那樣直接使用「./hello」命令執行並顯示內容 因為它是一個二進制文件,只能下載到開發板上執行!
至此,搭建交叉編譯環境步驟結束。
⑤ gcc -arm這個交叉編譯工具。有沒有可以再window上使用的
yagarto和codesourcery都是在windows下用的,官方已經編譯打包好的
EXE文件
cygwin下可以自己編譯源代碼,做出GNU工具鏈
mingw也可以實現
還有一些在windows下用的IDE,專門針對GNU工具鏈的,code::blocks,emide等
我在用emIDE,arm-none-eabi-gdb調試ARM
⑥ 搭建arm的交叉編譯環境需要哪些文件
這個過程如下 1. 下載源文件、補丁和建立編譯的目錄 2. 建立內核頭文件 3. 建立二進制工具(binutils) 4. 建立初始編譯器(bootstrap gcc) 5. 建立c庫(glibc) 6. 建立全套編譯器(full gcc) 下載源文件、補丁和建立編譯的目錄
⑦ Windows下用Cygwin進行ARM的交叉編譯MinGW有沒有這個功能如何在此環境下編譯linux內核
看很多資料都是在虛擬機下運行linux進行的編譯,用cygwin好像不好吧。初學mini2440.交流哈。
⑧ 請問arm交叉編譯,可以在windows上做嗎
有啊,用ads和SDT,ADT等,可以裸機,或者uCOS-II都行。
不過如果是要在arm上linux操作系統,那還是用linux。
⑨ 如何在Windows上建立arm-linux開發環境
在嵌入式產品大行其道的今天,Linux經過裁剪和優化而成的uClinux在嵌入式領域眾多的操作系統中佔有一席之地。從uClinux字面上就可以看出它的含義,即「微控制器領域中的Linux系統」。
uClinux從Linux 2.0/2.4內核派生而來,沿襲了Linux的絕大部分特性。它是專門針對沒有MMU(內存管理單元)的CPU,並且為嵌入式系統做了許多小型化的工作。它通常用於具有很少內存或Flash的嵌入式操作系統。在GNU通用許可證的保證下,運行uClinux操作系統的用戶可以使用幾乎所有的Linux API函數。由於經過了裁剪和優化,它形成了一個高度優化,代碼緊湊的嵌入式Linux。它具有體積小、穩定、良好的移植性、優秀的網路功能、完備的對各種文件系統的支持,以及豐富的API函數等優點。uClinux與Linux在兼容性方面表現出色,uClinux除了不能實現fork()外,其餘uClinux的API函數與標准Linux完全相同。
uClinux的基本架構
Boot Loader:負責Linux內核的啟動,用於初始化系統資源。這部分代碼用於建立Linux內核運行環境和從Flash中裝載初始化Ramdisk。
內核初始化:Linux內核的入口點是start kernel()函數。它初始化內核的其它部分,包括捕獲、IRQ通道、調度、設備驅動、標定延遲循環,最重要的是能夠fork「init」進程,以啟動整個多任務環境。
系統調用函數/捕獲函數:在執行完「init」程序後,內核對程序流不再有直接地控制權。此後,它的作用僅僅是處理非同步事件(例如硬體中斷)和為系統調用提供進程。
設備驅動:設備驅動占據了Linux內核很大部分。同其它操作系統一樣,設備驅動為它們所控制的硬體設備和操作系統提供介面。
文件系統:Linux最重要的特性之一就是對多種文件系統的支持。這種特性使得Linux很容易地同其它操作系統共存。文件系統的概念使得用戶能夠查看存儲設備上的文件和路徑而無須考慮實際物理設備的文件系統類型。
交叉編譯環境
uClinux是一個出色的開發平台,但是在我們能在電腦上編寫自己的嵌入式應用程序之前,還必須做的一件事,就是給uClinux建立完善的編譯環境。關於交叉編譯,簡單地講是指在一個平台(操作系統)上可以生成能在另一個平台上執行的代碼。
但是對於有些不是很懂Linux環境的人來講,用uClinux開發程序會感到諸多不便。這里提供了在裝有Windows系統的宿主機(開發時所用的機器)上建立交叉編譯環境的方法。
為了在Windows下開發嵌入式操作系統應用程序,可以在Windows環境下裝上Cygwin軟體。Cygwin是一個在Windows平台上運行的Unix模擬環境,是Cygnus Solutions公司開發的自由軟體。它對於學習掌握Unix/Linux操作環境,或者進行某些特殊的開發工作,尤其是使用GNU工具集在Windows上進行嵌入式系統開發,非常有用。
Cygnus首先把gcc、gdb等開發工具進行了改進,使它們能夠生成並解釋WIN32的目標文件。然後,把這些工具移植到Windows平台上去。一種方案是基於WIN32 APl對這些工具的源代碼進行大幅修改,這樣做顯然需要大量工作。因此,Cygnus採取了一種不同的方法——他們寫了一個共享庫(就是cygwinl.d11),把WIN32 API中沒有的Unix風格的調用(如fork、spawn、signals、select、sockets等)封裝在裡面。也就是說,他們基於WIN32 APl寫了一個Unix系統庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用Unix主機上的交叉編譯器來生成可以在Windows平台上運行的工具集。以這些移植到Windows平台上的開發工具為基礎,Cygnus又逐步把其它的工具(幾乎不需要對源代碼進行修改,只需要修改他們的配置腳本)軟體移植到Windows上來。這樣,在Windows平台上運行bash和開發工具、用戶工具,感覺好像在Unix上工作。
生成交叉編譯器
Cygwin軟體目前最新版本是Cygwin DLL 1.5.9-1。它的網址是http:// Cygwin.com,上面就有該程序的壓縮包,下載後解壓安裝就ok了。
在自己生成交叉編譯器之前,首先對Cygwin進行一些設置。假設Cygwin安裝在e目錄下,在打開Cygwin窗口之前,進入到E:\Cygwin目錄。在這個目錄下,有一個文件名為Cygwin.bat的批處理文件,編輯該文件,在第一行後加入setCYGWIN--titlentea,這是因為Cygwin的啟動批處理文件需要啟動Unix文件系統模擬。修改完畢且保存後退出。雙擊桌面上的Cygwin圖標,打開後默認用戶為在Windows中登錄的用戶名(這里所使用的操作系統是Windows 2000 Professsional),在根目錄(即E:\cygwin)下輸入:
cd bin
mV Sh.exe Sh—original.exe
n —S bash.exe Sh.Exe
做上述幾步的原因是大多數Linux系統把sh符號鏈接到bash,而Cygwin上的sh.exe和bash.exe是不同的,因此必須用bash代替sh。
從網站上下載生成工具鏈的各種源碼,根據腳本文件build-ucLinux-tools.sh建立可在Windows下編譯用戶應用程序的交叉編譯器,生成的交叉編譯器最終被打包為arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件,其中YYYY為生成交叉編譯器的年,mm為生成交叉編譯器的月份,dd為日期。
這里,需要注意的是在生成交叉編譯器的過程中,可能會遇到多次錯誤,讀者應該根據給出的出錯信息,進行相應文件的修改。由於習慣上的原因,Linux下的壓縮文件一般都是以.tar.gz或者.tgz結尾的。雖然用Windows下的解壓軟體,比如winzip或者winrar也可以解壓這些文件,但是不推薦使用這類解壓軟體,因為可能會造成某些信息的丟失。
⑩ QTcreator能在windows中交叉編譯arm平台程序嗎
這個估計沒必要,安裝一個虛擬機,然後安裝一個桌面版的里Linux系統,再在系統中安裝一個vim編輯器,再安裝一個gdb調試器,最後再arm-linux-gcc就可以編譯c文件了,要是你的很多源程序文件都在windows系統中,你可以設置Windows與Linux共享文件。這些東西在網上都可以找到教程,剛開始可能覺得Linux系統很不方便,但是要熟悉Linux系統就必須經常呆在Linux系統中,希望能幫到你。