linux基本知識 2018 11 10

2021-08-31 11:43:47 字數 2195 閱讀 3155

gcc編譯器

gcc又是乙個交叉平台編譯器

gcc的基本用法

gcc hello.c -o hello

檔案命名要用英文開頭

-wall:開啟所有警告項

-o:設定優化級別,o0表示關閉優化功能,-o預設為-o1

-g:將除錯資訊編譯到目標檔案中【插入除錯資訊】(gdb)

-c:只編譯,生成.o目標檔案【自動生成】

-e:預處理

gcc -e hello.c //對hello.c預處理,但不生成預處理檔案

gcc -e hello.c -o hello.i //對hello.c預處理,生成hello.i

-s:生成彙編檔案

gcc -s hello.c -o hello.asm

-d:定義巨集

eg:-dmacro,即定義macro巨集,等於#define macro

-i:將目錄加到程式檔案目錄中【增加乙個搜尋標頭檔案的目錄】

eg -i ./include

-l:將目錄駕到庫檔案的目錄列表中。【找對應的庫】

-l ./sqlit

-l:指定庫名

-lname

靜態庫(.a)

庫整合到程式中,使程式臃腫,難以公升級,但是不需要尋找庫檔案的位置

靜態庫的命名:libname.a【name為庫的命名】

靜態庫的使用:gcc -o file flie.c -l. -lname

靜態庫的建立:1、gcc -c 原始檔.c

2、ar rcs 靜態庫名 目標檔案1 目標檔案2

rc:靜態庫不存在,就建立該庫檔案

s:更新庫檔案

ar -t libmyrand.a //檢視庫檔案

ar -d libmyrand.a add.o //把add.o從庫函式中刪除,沒有錯誤提示

ar -dv linmyrand.a add.o //把add.o從庫檔案中刪除,有錯誤提示

動態庫:1、動態共享庫 2、動態鏈結庫

動態庫的命名:libname.so【name為庫的命名】

動態庫的建立:gcc -shared -fpic -o 庫名.so 原始檔.c

動態庫的使用:gcc 原始檔.c ./庫名.so -o 可執行檔名

gdb偵錯程式

gcc -g test.c -o test

gdb test //進入gdb除錯模式

功能:除錯程式

除錯命令:

list(l):檢視程式,可跟行號

break(b):設定斷點

b 函式名:函式入口處新增斷點

b 行號:行號處新增斷點

b 行號 if 條件 :當條件為真時,斷點生效。eg:b 5 if i = 10 當i=10時,第五行斷點

delete 斷點編號:刪除斷點

clean 刪除所有斷點

clean +行號或者檔名

run(r)開始執行

next(n)單步執行(不進入呼叫函式)

step(s)單步執行(進入呼叫函式)

continue(c)繼續執行程式

print(p)變數名:檢視指定變數值

finish 執行程式:直到當前函式結束

watch 變數名:對指定變數進行監控

quit(q)退出gdb

工程檔案管理器make

makefile【預設】,makefile也可以。同乙個目錄最好只有乙個。

makefile是make讀入的唯一配置檔案

在makefile中通常包含如下內容:

1、需要由make工具建立的目標體(target)。通常是目標檔案/可執行檔案。【可執行檔案為終極目標。終極目標只有乙個。】

2、要建立的目標體所依賴的檔案【.o】。建立每個目標體時需要執行的命令(command),這一行必須以製表符(tab鍵)開頭。

eg:

在命令臺:

vim makefile //建立makefile檔案

在檔案中編寫:

hello: hello.o

gcc -o hello hello.o

hello.o:hello.c

gcc -c hello.c

在命令臺:

#make

#./hello

Linux基本知識

linux環境 ubuntu 14.x 二 shell環境 在ubuntu下進入shell命令介面 ctrl alt f3 f6 退出命令介面 ctrl alt f7 shell常用命令 更改賬目密碼 passwd 檢視當前目錄 pwd 列出當前目錄先得所用檔案和目錄,後可加選項 ls 新建資料夾 ...

linux 基本知識

網路 1 網路介面 1 網路介面的命名 eth0 ethernet的簡寫,一般用於乙太網介面。wifi0 wifi是無線區域網,因此wifi0一般指無線網路介面。ath0 atheros的簡寫,一般指atheros晶元所包含的無線網路介面。lo local的簡寫,一般指本地環迴介面。2 網路介面如何...

Linux基本知識

linux嚴格區分大小寫 linux一切皆檔案 linux不靠副檔名區分檔案型別 linux中所有的儲存裝置都必須在掛載之後才能使用 windows下的程式不能直接在linux中使用。了解 linux目錄結構 bin 存放系統命令的目錄,普通使用者和超級使用者都可以執行。是 usr bin 目錄的軟...