目錄:
- 前言:
- 1.程式的編譯程序:預處理,編譯,匯編,鏈接
- 1.1預處理:展開頭檔案 宏替換 去掉注釋
- 1.2編譯:檢查語法,語法沒有問題生成匯編代碼檔案
- 1.3匯編:把匯編代碼轉成機器代碼(二進制代碼)
- 1.4鏈接:將多個目標程式和庫連結在一起,找到相關函式的地址填到呼叫的地方,生成可執行檔案
前言:
gcc ==> 編譯C語言
格式:gcc [選項] 要編譯的檔案 [選項] [目標檔案]
g++ ==> 編譯C/C++
1.程式的編譯程序:預處理,編譯,匯編,鏈接
1.1預處理:展開頭檔案 宏替換 去掉注釋
? 對于gcc或者g++,需要添加命令列引數 -E,生成的檔案后綴為 .i
? -E:告訴gcc或者g++,在編譯程序中,完成預處理之后就停下來
eg:gcc -E test.c -o test.i

1.2編譯:檢查語法,語法沒有問題生成匯編代碼檔案
? 對于gcc或者g++,需要添加命令列引數 -S,生成的檔案后綴為 .s
? -S:告訴gcc或者g++,在編譯程序中,完成編譯之后就停下來,生成匯編代碼,生成一個.s檔案
eg:gcc -S test.c -o test.s

1.3匯編:把匯編代碼轉成機器代碼(二進制代碼)
? 對于gcc或者g++,需要添加命令列引數 -c,生成的檔案后綴為 .o
? -c:告訴gcc或者g++,在編譯程序中,完成匯編之后就停下來,生成一個 .o 檔案
? .o 檔案相當于win當中的目標程式(xxx.obj)
eg:gcc -c test.c -o test.o

1.4鏈接:將多個目標程式和庫連結在一起,找到相關函式的地址填到呼叫的地方,生成可執行檔案
eg:gcc test.c -o test

注:./test告訴bash要執行的檔案是當前路徑下的test檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259042.html
標籤:其他
上一篇:Linux-基礎指令(三)shell-權限-yum-vim
下一篇:Ubuntu各個版本換源方法
