嵌入式gcc的編譯過程

2021-06-01 23:37:40 字數 548 閱讀 8839

嵌入式上得使用交叉編譯器進行編譯,這裡以arm平台的編譯c程式的編譯器arm-linux-gcc為例。

hello.c:

#include int main()

1.預處理(preprocessing):

arm-linux-gcc -e hello.c -o hello.i

生成預處理檔案hello.i

2.編譯(compilation):

arm-linux-gcc -s hello.i -o hello.s

生成彙編**hello.s,此時的組合語言為arm彙編指令,不是x86體系下的彙編指令

3.彙編(assembly):

arm-linux-gcc -c hello.s -o hello.o

arm-linux-gcc hello.o -o hello

生成arm平台下可以執行的可執行檔案hello

若在pc機上執行則會被告知:cannot execute binary file。可以用file hello檢視hello檔案屬性。

嵌入式Linux編譯器gcc

一 gcc簡介 gcc 又是乙個交叉平台編譯器,它能夠在當前平台上為多種不同體系結構的硬體平台開發軟體。任意一款處理器都有自己的組合語言,生成的機器碼只能被自身的cpu識別。arm linux gcc test.c o test 此時linux平台下執行的 可在arm平台上執行 1.什麼是gnu計畫...

嵌入式 linux 編譯

第二次換了編譯環境編譯時又提示 make 3 drivers video console vgacon.o 錯誤 1 在網上搜尋結果 根據資訊的大概意思是關於vga的支援問題,在這裡我直接把關於vga的配置選項去掉不選,即 在執行 make menuconfig 配置時 不選vga 驅動。devic...

嵌入式學習筆記之gcc編譯器

原始檔需要經過編譯才能生成可執行檔案,pc下的編譯工具鏈為gcc,ld,objcopy等,它們編譯出來的程式在x86平台下執行,要編譯出可以在arm平台執行的程式,就需要使用交叉編譯工具 arm linux gcc,arm linux ld等,主要介紹前者.乙個c c 檔案要經過 預處理 prepr...