Linux基礎 gcc工具的使用

2021-10-04 17:04:27 字數 1572 閱讀 6101

我們在linux下寫好c語言原始檔test.c

然後執行gcc test.c -o test把原始檔test.c編譯存為可執行檔案test

然後用./test執行程式test

注意:1、原始檔和目標檔案位置可以互換 2、目標檔案可省略,gcc預設生成可執行檔案為a.out

雖然我們使用gcc test.c -o test這乙個命令就把原始檔編譯成了可執行檔案,但是呢,其實這中間經過了好幾個步驟

我們可以用這乙個命令完成編譯,當然如果有需要我們也可以一步一步完成編譯

原始檔test.c

預處理:gcc -e test.c -o tets.i

c程式中的標頭檔案包括兩種情況:

#include

#include 「b.h」

區別在於:<>是讓預處理程式cpp在系統預設的頭檔案目錄(linux下預設目錄是:/usr/include)中搜尋相應的檔案。

""是讓預處理程式cpp在當前目錄中搜尋相應的檔案。

如果說你的標頭檔案既不在當前目錄,也不在預設目錄,則需要指定目錄

gcc指定標頭檔案所在的目錄的引數是-i

例如:標頭檔案my.h的內容是#define value 3,在/home/net/my目錄下

程式a.c的內容如下 在/home/net/test目錄下

#include

"my.h"

#include

void

main()

編譯時指定其頭檔案目錄:gcc -i /home/net/my.h a.c -o a編譯格式:

# gcc -l 庫檔案所在目錄 程式名稱

ps:stdio.h/usr/include目錄下,庫檔案都在/usr/lib目錄下

使用gcc test.c -o test編譯出來的可執行檔案是不能用gdb除錯的,因為裡面沒有附加除錯資訊

我們應該使用gcc -g test.c -o test編譯檔案,-g引數能為其附加除錯資訊

編譯得到可執行檔案test

使用gdb除錯:# gdb test//進入除錯

具體除錯命令,我就省略不寫了,自己搜尋~

退出命令:# quit

程式設計工具 GCC基礎命令

假設源程式檔名為test.c 選項 e 用法 gcc e test.c o test.i 作用 將test.c預處理輸出test.i檔案。選項 s 用法 gcc s test.i 作用 將預處理輸出檔案test.i彙編成test.s檔案。選項 c 用法 gcc c test.s 作用 將彙編輸出檔案...

Linux下GCC工具的安裝

1.掛載光碟機 mount dev cdrom mnt cdrom 注 若使用虛擬機器,如mount光碟機,提示找不到介質,說明iso未連線上,設定 cd conneted 2.在光碟iso中找到類似gcc 3.2.2 5.i386.rpm的包 在rpms資料夾中 3.將gcc 3.2.2 5.i3...

Linux開發工具 gcc

鏈結程式把所有物件檔案中的機器碼組合在一起,並解析它們之間的交叉引用。它還整合了物件模組所使用的庫函式的 這是鏈結程式的一種簡化表示,因為這裡假定在可執行模組中,模組之間的所有鏈結都是靜態建立的。實際上有些鏈結是動態的,即這些鏈結是在程式執行時建立的。鏈結就是鏈結器ld將各個目標檔案組裝在一起,解決...