為什麼嵌入式系統要使用交叉編譯
所謂交叉編譯是指在A系統上編譯B系統的二進制代碼。
嵌入式的應用程序,甚至操作系統是運行在特定目標平台上,例如一塊arm架構的目標板。而編譯程序的時候通常是在普通x86構架下的Linux操作系統的PC上。在PC上編譯嵌入式應用程序的過程叫做交叉編譯。
『貳』 ubuntu下進行嵌入式C語言開發時,什麼叫交叉編譯為什麼要交叉編譯
交易編譯就是將文件編譯成目標機可執行的文件。
比如說:你在PC機上寫一個helloword,怎麼讓它到開發板上運行,開發板上的指令跟PC機不到,就需要用到交叉編譯工具,編譯成開發板上能識別的指令。
『叄』 什麼是交叉編譯,為什麼要採用交叉編譯
在一個平台架構上,編譯另一個平台架構的可執行代碼,就是交叉編譯。
例如在x86架構的PC上編譯arm嵌入式設備的可執行程序。
交叉編譯是不得不用,
首先在目標設備的系統還沒引導起來的時候,編譯目標平台的引導程序,顯然只能交叉編譯。
還有因為目標設備往往能力太低,沒法安裝編譯器,或者勉強安裝了,也慢得像蝸牛。
『肆』 linux嵌入式系統的開發為什麼要用到交叉編譯器交叉編譯器的作用是什麼
linux嵌入式系統的開發的應用資料,交叉編譯器等等,這方面的資料,
到「工搜網資料文庫」索取吧。那裡有詳細的資料
『伍』 嵌入式交叉開發環境組成是怎樣的嵌入式系統開發為什麼需要這樣的交叉開發環境而通用計算機的開發不需要
所謂交叉編譯,就是在一種機器結構下編譯的軟體將在另一種完全不同的機器上運行。典型的交叉編譯的例子就是嵌入式系統工程師在自己的個人電腦上編譯後的程序將在ARM,MIPS等等嵌入式工作平台上運行。所以,嵌入式交叉開發環境一般將由個人電腦,PC端嵌入式開發軟體(如支持ARM的mdk,ads,rvds等等),支持硬體調試的硬體調試器及其配套的驅動軟體(如j-link),當然,最重要的還要有嵌入式硬體系統即通俗所謂的開發板。
嵌入式系統之所以要在通用計算機上開發,我想主要還是資源配置的問題,按嵌入式系統的定義,嵌入式系統的軟硬體將是可剪裁的以適用於各種不同的要求。這樣的話,由於硬體平台千差萬別,開發其編譯器將變得不可能,即便開發出來,可能也需要及其繁瑣的配置,大大降低了軟體的可用性。另外就是使用也不方便,大多數嵌入式系統不會配備像PC機一樣適於輸入的鍵盤和較大的屏幕,所以,如果在嵌入式系統上敲代碼,將是一件非常惱火的事情。
『陸』 什麼是交叉編譯技術,並簡述在嵌入式系統中採用該技術的原因
很簡單,交叉編譯就是在宿主機上編譯能在目標板上運行的程序,之所以用交叉編譯,就是因為很多目標機的功能不是很強大,例如沒有足夠的內存,CPU也不行。所以就要藉助宿主機來做好它所需要是東東,然後目標機用
『柒』 什麼是嵌入式設計中的交叉編譯
Compiling a program takes place by running a compiler on the build platform. The compiled program will run on the host platform. Usually these two are the same; if they are different, the process is called cross-compilation.
對一個程序進行編譯的過程要通過在一個操作系統平台(編譯平台)上運行編譯器而完成。被編譯的程序也將運行在一個操作系統平台(運行平台)上,這二個平台通常是相同的,如果二者不同,則這個編譯過程被稱為交叉編譯。
Typically the hardware architecture differs, like for example when compiling a program destined for the MIPS architecture on an x86 computer; but cross-compilation is also applicable when only the operating system environment differs, as when compiling a FreeBSD program under Linux; or even just the system library, as when compiling programs with uClibc on a glibc host.
一般來說交叉編譯被應用在硬體結構不同的機器上,如在x86的計算機上為MIPS體系的機器編譯程序。但交叉編譯也適用於硬體結構相同而操作系統不同的情況,比如在Linux操作系統下為FreeBSD編譯程序。交叉編譯甚至也可以應用於只有系統庫不同的情況下,如在使用glibc的機器上用uClibc編譯程序。
Cross-compilation is typically more involved and prone to errors than with native compilation. Due to this, cross-compiling is normally only utilized if the target is not yet self-hosting (i.e. able to compile programs on its own), unstable, or the build system is simply much faster. For many embedded systems, cross-compilation is simply the only possible way to build programs, as the target hardware does not have the resources or capabilities.
交叉編譯通常比本地編譯更容易引發錯誤。因此,交叉編譯一般只用於目標平台不能自洽(比如說,目標平台無法完成程序編譯),不穩定或者編譯平台速度更快的情況下。對大多數嵌入式系統來說,由於目標平台的執行能力或系統資源有限,交叉編譯是唯一可行的編譯方式。
『捌』 為什麼要用交叉編譯器
交叉編譯,簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。這里需要注意的是所謂平台,實際上包含兩個概念:體系結構(Architecture)、操作系統(Operating System)。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,我們常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
有時是因為目的平台上不允許或不能夠安裝我們所需要的編譯器,而我們又需要這個編譯器的某些特徵;有時是因為目的平台上的資源貧乏,無法運行我們所需要編譯器;有時又是因為目的平台還沒有建立,連操作系統都沒有,根本談不上運行什麼編譯器。
綜上,在嵌入式開發的時候我們就要使用交叉編譯器。
『玖』 嵌入式軟體開發中,交叉編譯怎麼理解
運行在開發板上的程序是在上位機(電腦)上編寫和編譯的;即在電腦上生成二進制或十六進制可執行文件,在開發板上運行驗證,所以叫交叉編譯。
