當前位置:首頁 » 編程軟體 » 開發板編譯和交叉編譯

開發板編譯和交叉編譯

發布時間: 2022-07-03 22:50:48

『壹』 什麼是交叉編譯

由於嵌入式系統是藉助PC(宿主機)來進行編寫、編譯和調試程序的。宿主機一般是linux系統,它編譯的程序是要在嵌入式系統上運行而非在宿主機本地運行,那麼宿主機需要使用某種特定的交叉編譯器,編譯出能在目標系統上運行的程序,這就是交叉編譯。
如你是初學嵌入式Linux,建議你看看ZLG致遠電子的開發板,資料比較齊全。
由於嵌入式系統是藉助PC(宿主機)來進行編寫、編譯和調試程序的。宿主機一般是Linux系統,它編譯的程序是要在嵌入式系統上運行而非在宿主機本地運行,那麼宿主機需要使用某種特定的交叉編譯器,編譯出能在目標系統上運行的程序,這就是交叉編譯。

如你是初學嵌入式Linux,建議你看看ZLG致遠電子的開發板,資料比較齊全。

『貳』 什麼是交叉編譯,為什麼要使用交叉編譯

交叉編譯的概念(來自網路):

簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
舉個例子:
我們在Linux系統比如Ubuntu上編寫的C程序完全可以拿到Windows系統上正常運行。

『叄』 ubuntu下進行嵌入式C語言開發時,什麼叫交叉編譯為什麼要交叉編譯

交易編譯就是將文件編譯成目標機可執行的文件。
比如說:你在PC機上寫一個helloword,怎麼讓它到開發板上運行,開發板上的指令跟PC機不到,就需要用到交叉編譯工具,編譯成開發板上能識別的指令。

『肆』 嵌入式軟體開發中,交叉編譯怎麼理解

運行在開發板上的程序是在上位機(電腦)上編寫和編譯的;即在電腦上生成二進制或十六進制可執行文件,在開發板上運行驗證,所以叫交叉編譯。

『伍』 開發工具,模擬器,燒錄器,編譯器,交叉編譯器到底是什麼關系

房東太多的此長啊,不拉。
開發工具,模擬器,燃燒器,編譯器:開發工具模擬器,燃燒器和編譯器。模擬器只能燒一些簡單的IC,少數還行。燃燒器的程序員更強大的通配符量單一類型的刻錄機其實很簡單,就是你編譯程序寫入片內Flash內的介質燃燒器改造,我從事燒傷,我為自己代言

『陸』 如何設置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菜單

『柒』 交叉編譯的主機和開發板系統可以不一樣嗎

(1)交叉編譯器

在主機上用來編譯其它類型機器上可執行代碼的編譯器就叫交叉編譯器,我們進行嵌入式linux的開發主機大部分都是X86,而我們的嵌入式系統的處理器有可能是ARM/MIPS等非X86處理器,這時候就必須使用ARM/MIPS的交叉編譯器才能編譯出在這些處理器上能夠執行的代碼。這里我們使用的是ARM最新的EABI編譯器。

交叉編譯器在編譯的時候,對於浮點運行會預設硬浮點運算FPA(float point architecture),而沒有FPA的CPU,比如三星的2440等,會使用FPE(float point emulation即軟浮點),這樣在速度上就會受到極大限制。使用EABI(embeded application binary interface)則可以對此改善處理。

(2)不修改MAKEFILE來建立編譯環境

將arm-2008q3.tar.bz2拷貝到ubuntu系統的某個目錄,解壓後。使用VI編輯/etc/bash.bashrc,在文件最後加入環境變數設置(註:加bin的含義是交叉編譯器工具目錄):

保存後,用source運行一次該文件,就可以了。

(3)gcc: error trying to exec 'cc1': execvp: No such file or directory 的解決

今天在編譯開發板環境時,明明設置好編譯器的環境變數了,編譯時就是會出現:gcc: error trying to exec 'cc1': execvp: No such file or directory 錯誤提示。後來發現一個方法可以解決,輸入:whereis gcc,就可以了發現好幾個gcc,包括/usr/bin/gcc,所以我就把PATH路徑設過去,就OK了。

(4)Clock skew detected. Your build may be incomplete

如果你裝了Windows Linux雙系統,系統時間很可能出問題,從而造成文件修改時間比系統時間晚,兩種辦法:
1,應該是你的PC的系統時鍾錯誤,在BIOS中修改正確。
2,使用touch命令將所有文件的時間戳修改為你系統的當前時間。解決方法:find ./-name "*" -exec touch {} \;

『捌』 如何交叉編譯 動態庫

首先,你要保證你編譯的程序使用的交叉編譯鏈是開發板支持的,例如arm-linux-4.3.2,一般是在虛擬機下面的linux系統下的/etc/profile裡面添加編譯鏈路徑;接著,需要確保使用的內核是開發板目前使用的內核,一般MINI2440是使用linux-2.6.30版本的,這個要在程序的makefile文件裡面改;還有,如果你使用靜態編譯方式文件會比較大,但是不用依賴庫,如果是用動態編譯,文件就比較小,但是依賴動態庫,如果放到開發板上運行提示缺少動態庫,就證明你沒有把動態庫放進開發板的/lib裡面,可以用ldd指令查看需要哪些庫;最後,記住移植的方式可以使用NFS或者Tftp,U盤也可以,放到開發板上後必須在文件存放的當前目錄下./可執行文件,或者把文件放入/bin或者/sbin下面,就可以直接可執行文件,不用加./你可以在程序裡面加些調試信息輸出,例如printf,以此證明有執行。

『玖』 請問什麼是交叉編譯跟本地編譯有什麼區別

交叉編譯就是在A平台編譯出能在B平台運行的文件。

『拾』 如何構建交叉編譯環境。

你說的是我下面的回答嗎?下面就一些問題作一個說明,以期拋磚引玉。
基於Linux操作系統的應用開發環境一般是由目標系統硬體(開發板)和宿主PC機所構成。目標硬體開發板用於運行操作系統和系統應用軟體,而目標板所用到的操作系統的內核編譯、應用程序的開發和調試則需要通過宿主PC機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,並口或乙太網介面建立連接關系。
但在此我建議構建如下的交叉編譯環境,適合個人或研發小組使用:單獨拿出一台PC機(PII以上即可,就用以前淘汰的舊機器就可以),在該PC上安裝桌面的Linux操作系統(如Red Hat Linux 8.0及以上),可以採用默認的安裝選項(注意要包含FTP服務),這台PC作為Linux伺服器,除管理員以外,一般不直接讓其他人去操作。
將該Linux伺服器接入區域網,並新建一些合法用戶,以便其他的PC機(在此我們將其稱為工作站)的合法用戶能訪問到Linux伺服器。而其他的PC機(工作站)仍然使用Windows操作系統,原來幹啥繼續幹啥。
需要的軟體工具包括:
1、FTP客戶端程序(如Cuteftp,可到網上下載)。
2、Telnet工具(如SecureCRT,可到網上下載)。
3、移植到某一特定ARM平台的Linux操作系統內核源碼(一般由銷售商整理提供)。
4、GNU編譯工具,可由相關網站下載,或由銷售商整理提供。
在工作站安裝:
在某工作站PC上安裝FTP客戶端程序和Telnet工具,安裝完畢後應該可以在該工作站PC和Linux伺服器之間進行文件的傳輸,並在工作站PC可以通過Telnet登陸到Linux伺服器(可能需要將Linux伺服器的防火牆服務關閉才能完成)。
在Linux伺服器安裝:
將工作站PC上的Linux操作系統內核源碼壓縮包和GNU編譯工具通過FTP傳送到Linux伺服器的某個目錄(如合法的用戶目錄),然後在該目錄下解壓,並將GNU編譯工具安裝到默認的工作目錄即可,以上工作通過在工作站PC使用Telnet工具完成,而不需要在Linux伺服器上進行。
Linux操作系統內核的編譯:
Linux操作系統內核的編譯一般有一個比較固定的步驟,會根據MakeFile文件的不同而略有差異,可參考相關文檔,編譯的工作在工作站PC使用Telnet工具完成。

熱點內容
java的文件路徑 發布:2024-05-07 16:55:29 瀏覽:292
雲表伺服器安裝導致電腦崩潰 發布:2024-05-07 15:58:35 瀏覽:524
ftp是什麼檢測器 發布:2024-05-07 15:37:59 瀏覽:403
重慶電信伺服器租用教學雲主機 發布:2024-05-07 15:28:05 瀏覽:73
python聲明對象 發布:2024-05-07 15:28:03 瀏覽:128
存儲過程的應用場景 發布:2024-05-07 15:12:16 瀏覽:613
車內配置怎麼看 發布:2024-05-07 15:11:39 瀏覽:209
outlook已發送文件夾 發布:2024-05-07 14:08:13 瀏覽:31
佛系源碼 發布:2024-05-07 14:04:03 瀏覽:674
php螞蟻 發布:2024-05-07 13:49:22 瀏覽:401