gcc的認識與學習
| --階段 |輸入 |輸出|gcc例項
|預編譯 | .c | .i | gcc -e test.c -otest.i
|編譯 | .i |.s |gcc -s test.i -otest.s
| 彙編 | .s |.o |gcc -c test.s -otest.o
|鏈結 | |.o |gcc test.o -o test
預處理階段:原始檔(.c)與相應的包含檔案(.h標頭檔案)一起進行預處理。在這個階段對#ifdef,#include及#define這類預編譯指令進行解析,結果是產生乙個中間檔案。
原始檔經過了預處理,可以通過編譯階段(.s)的編譯來為彙編做準備。
彙編階段:檔案轉化為相應的機械指令,生成目標檔案(.o)。
最後這些機械碼鏈結起來形成可執行的二進位制檔案。
-c只編譯不鏈結,生成目標檔案
-s只編譯不彙編,生成彙編**
-e只預編譯––
-g包含除錯資訊
-o file
指定目標輸出檔案
-i [dir]
gcc的使用
1 把檔案hello.c編譯儲存到乙個hello的檔案中:
$gcc hello.c -o hello
2 生成目標檔案命名hello.o:
$gcc -c hello.c -o hello.o
3 將三個檔案編譯並鏈結為乙個名為text的檔案:
$gcc -o text first.c second.c third.c
指定加入路徑的
有時候儲存標頭檔案的目錄和儲存原始檔的目錄不是乙個需要搜尋標頭檔案的路徑:
$gcc hello.c -i…/inc -o test
認識與學習shell
1.shell的意義 shell將我們輸入的命令與核心通訊,好讓核心可以控制硬體準備無誤的來工作。檢視系統支援的shell cat etc shells 檢視使用者的shell cat etc passwd 最後乙個 shell的優點 命令記憶 自動補全 別名 程式指令碼 歷史命令記錄在 bash ...
認識與學習BASH
應用程式在最外面,就如同雞蛋的外殼一樣,因此被稱呼為shell 殼程式 其實殼程式的功能只是提供作業系統的乙個介面。應用程式 作業系統 系統呼叫 核心 硬體linux預設的shell就是bash tab 接在一串指令的第乙個字的後面,則為命令補全 接在一串指令的第二個字以後時,則為檔案補齊 命令別名...
認識與學習bash
我們知道,管理整個計算機硬體的其實是作業系統的核心 kernel 而核心一般是需要保護的,因此我們一般使用者只能通過shell來與核心通訊,讓核心完成我們想要完成的工作。那麼系統有多少shell可用呢?為什麼我們要用shell?我們必須通過 shell 將我們輸入的命令與核心通訊,好讓核心可以控制硬...