linux作業系統基礎命令

2021-07-24 11:48:50 字數 2848 閱讀 7198

gcc的知識要點:gcc的初衷是為gnu作業系統專門編寫的一款編譯器,gnu系統是徹底自由的軟體。

gcc的基本用法:

gcc hello world.c -c,只編譯,不鏈結成為可執行檔案,編譯器只是由輸入的.c的源**檔案生成.o為字尾檔案的目標檔案,通常用於編譯不包括主程式的子程式。

gcc hello world.c -o hello world  把hello world.c 編譯成可執行檔案 hello world 。

-g 是產生除錯工具(gdb)所必須的符號資訊,要想對源**進行除錯,我們必須加入這個選項

-o 對程式進行優化編譯,鏈結,採用這個選項,整個源**會在編譯,鏈結過程中進行優化處理,這樣產生的可執行檔案的執行效率會提高,但是在編譯,鏈結的速度就相應的要慢一些。

預處理過程:這個過程處理巨集定義和include,並做語法檢查。

編譯過程:這個階段,生成彙編**

彙編過程:這個階段,生成目標**

鏈結過程:鏈結過程,可生成可執行**。鏈結分為兩種,一種是靜態鏈結,另一種是動態鏈結。

靜態鏈結的好處是:依賴的動態鏈結庫較少,對動態鏈結庫的版本不會敏感,具有較好的相容性;缺點是生成的程式比較大。占用記憶體大。

gcc的使用口令:

gcc -o hello.c生成可執行檔案。a.out

.(點)代表當前目錄

cp -r /mnt/hgfs/share/gcc/.把gcc複製到當前目錄。

time ./hello 測試可執行檔案hello執行運算的時間。

gcc -o1 hello.c -o hello1進行一級優化

gcc -o2 hello.c -o hello2進行二級優化

gcc -w hello.c 關閉警告(-w)

gcc -wall hello.c 開啟全部警告(-wall)

mv add.c../把add.c調到上一級目錄

靜態庫:是在程式執行之前就已經加入到執行檔案的執行**中,成為執行程式的一部分來執行的。字尾是(.a)

動態庫:是在程式啟動時載入到執行**中,字尾是(.so)

靜態庫的優點:編譯速度慢,執行速度快,可以提供多種可使用的變數,但是會使程式臃腫占用更多的記憶體,不利於公升級,但是布局好

動態庫的優點:編譯速度快,執行速度慢,公升級方便 布局差。

庫的存放:

1:/lib/ 系統庫

2:/usr/lib 程式庫

不管是靜態庫還是動態庫都是由(.o)字尾的檔案生成的。所以先用gcc -c add.c          gcc -c sub.c  生成add.o和sub.o檔案 然後建立。

靜態庫的製作:由ar命令建立 例如:ar rcs libaddsub.a add.o sub.o   就可生成靜態庫libaddsub.a

就是 (ar rcs 靜態庫名 目標檔案)。

呼叫靜態庫:gcc -o hello hello.c -laddsub編譯hello.c就會把靜態庫整合進hello.c中生成呼叫靜態庫的可執行檔案 hello

gcc hello.c -laddsub生成呼叫靜態庫的可執行檔案a.out。

通過gcc -o main main.c -l. -laddsub編譯

-l指定靜態函式庫

的位置供

查詢,注意l後面

還有'.',表示靜態函式

庫在本目錄下

查詢。-l則

指定了靜態函式

庫名,由於靜態函式

庫的命名方式是

lib***.a

,其中的

lib和

.a忽略。

根據靜態函式庫

的特性,此處刪除

libaddsub.a

後main

依然可以執行,因為靜

態庫的內容已經整合進去了。

動態庫(共享庫)的製作:gcc -shared -fpic -o libaddsub.so add.o add.o

就是(gcc -shared -fpic -o 動態庫名 目標檔案)

呼叫動態庫:gcc -o out main.c -l. -laddsub 此

時還不能立即

./out,因為

在動態函式庫

使用時,會查

找/usr/lib /lib目錄

下的動態函式庫

,而此時我們

生成的庫

不在裡邊。

這個時候有好幾

種方法可以

讓他成功執行:

最直接最

簡單的方法就是把

libaddsub.so

拉到/usr/lib 

或/lib

中去。

linux作業系統命令基礎

常用指令 ls 顯示檔案或目錄 l 列出檔案詳細資訊l list a 列出當前目錄下所有檔案及目錄,包括隱藏的a all mkdir 建立目錄 p 建立目錄,若無父目錄,則建立p parent cd 切換目錄 touch 建立空檔案 echo 建立帶有內容的檔案。cat 檢視檔案內容 cp 拷貝 m...

Linux作業系統基礎命令

man help 利用方向鍵 快速調取歷史命令 ctrl a 將游標移動到行首 ctrl e 將游標移動到行尾 ctrl 將游標按照字串進行左右快速移動 ctrl u 將游標之前的內容進行剪下 ctrl k 將游標之後的內容進行剪下 ctrl w 以空格作為分隔 剪下每個字串資訊 ctrl y 將剪...

Linux作業系統基礎命令

登入使用者名稱 主機名 工作目錄 身份標識 身份表示分為 或 表示管理員,表示普通使用者 格式 命令字 選項 引數 選項 用來調控命令的執行方式,分短選項 長選項 多選項 短選項用 單個字元 長選項用 單詞 多選項用 多個單字元,部分命令不能拼接,只能分開 ctrl l 清屏 ctrl c 終止命令...