嵌入式Linux應用開發學習記錄(程式設計基礎)
阿新 • • 發佈:2018-12-12
C/C++檔案 ->可執行檔案需4步:
1.預處理:處理include、巨集定義、條件編譯,輸出 .i 檔案
2.編譯:把C翻譯成彙編
3.彙編:彙編翻譯成機器程式碼(OBJ檔案)
4.連線:將上面生成的OBJ和庫的OBJ連線,生產可執行檔案
編譯和執行:
$ sudo gcc -o sh sheep.c #輸出了可執行檔案
$ ./sh #執行可執行檔案
$ sudo gcc -v -o sh sheep.c #顯示編譯細節
$ sudo cpp -o sheep.i sheep.c #預處理,輸出了 sheep.i
$ sudo gcc -Wall sheep.c #看警告
聯結器選項:
加-nostartfiles不連線系統標準啟動檔案,編譯bootloader、核心時用。
加-nostdlib不連線系統標準啟動檔案和標準庫檔案,編譯bootloader、核心時用。
$ find -name "sheep.c" #查詢檔案
$ grep "sheep" * -nR #查詢含有某個字串的檔案
vim makefile:
目標: 依賴1 依賴2...
命令
當前目標下執行sudo make
打補丁:
$patch -px < ../補丁檔案 #px的x是忽略補丁指示的第x個目錄