我們來看一下
gcc常用選項:
-v:檢視gcc編譯器的版本,顯示gcc執行時的詳細過程
-oplace the output into
指定輸出檔名為file,這個名稱不能跟源檔名同名
-epreprocess only; do not compile, assemble or link
只預處理,不會編譯、彙編、鏈結
-scompile only; do not assemble or link
只編譯,不會彙編、鏈結
-ccompile and assemble, but do not link
編譯和彙編,不會鏈結
gcc -v:檢視gcc編譯器的版本
方式1:
gcc hello.c 輸出乙個a.out,然後./a.out來執行該應用程式。gcc -o hello hello.c 輸出hello,然後./hello來執行該應用程式。
方式2:
gcc -e -o hello.i hello.c
gcc -s -o hello.s hello.i
gcc -c -o hello.o hello.s
gcc -o hello hello.o
.o:object file(obj檔案)
小結:1)輸入檔案的字尾名和選項共同決定gcc到底執行那些操作。
2)在編譯過程中,除非使用了-e、-s、-c選項(或者編譯出錯阻止了完整的編譯過程)
否則最後的步驟都是鏈結。
方式3:
gcc -c -o hello.o hello.c
gcc -o hello hello.o
gcc會對.c檔案預設進行預處理操作,-c再來指明了編譯、彙編,從而得到.o檔案
再通過gcc -o hello hello.o
將.o檔案進行鏈結,得到可執行應用程式。
鏈結就是將彙編生成的obj檔案、系統庫的obj檔案、庫檔案鏈結起來,
使用 gcc -v test.o -o test 檢視鏈結時的詳細資訊
最終生成可以在特定平台執行的可執行程式。crt1.o、crti.o、crtbegin.o、crtend.o、crtn.o是gcc加入的系統標準啟動檔案,
對於一般應用程式,這些啟動是必需的。
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...
mysql 索引深入理解 深入理解MySql的索引
為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...