Linux下編譯常用命令(包括多文件編譯)

2021-06-01 02:07:41 字數 1351 閱讀 1706

一. 常用編譯命令選項

假設源程式檔名為test.c。

1. 無選項編譯鏈結

用法:gcc test.c

作用:將test.c預處理、彙編、編譯並鏈結形成可執行檔案。這裡未指定輸出檔案,預設輸出為a.out。

2. 選項 -o

用法:gcc test.c -o test

作用:將test.c預處理、彙編、編譯並鏈結形成可執行檔案test。-o選項用來指定輸出檔案的檔名。

3. 選項 -e

用法:gcc -e test.c -o test.i

作用:將test.c預處理輸出test.i檔案。

4. 選項 -s

用法:gcc -s test.i

作用:將預處理輸出檔案test.i彙編成test.s檔案。

5. 選項 -c

用法:gcc -c test.s

作用:將彙編輸出檔案test.s編譯輸出test.o檔案。

6. 無選項鏈結

用法:gcc test.o -o test

作用:將編譯輸出檔案test.o鏈結成最終可執行檔案test。

7. 選項-o

用法:gcc -o1 test.c -o test

作用:使用編譯優化級別1編譯程式。級別為1~3,級別越大優化效果越好,但編譯時間越長。

二. 多原始檔的編譯方法

如果有多個原始檔,基本上有兩種編譯方法:

[假設有兩個原始檔為a.cpp,b.cpp,分別定義兩個類a和b,main.cpp包含a類和b類

1. 多個檔案一起編譯

用法:gcc a.cpp b.cpp main.cpp -o main.o

作用:將a.cpp、b.cpp和main.cpp分別編譯後鏈結成main.o可執行檔案。

2. 分別編譯各個原始檔,之後對編譯後輸出的目標檔案鏈結。

用法:gcc -c a.cpp -o a.o                        //將a.cpp編譯成a.o

gcc -c b.cpp -o b.o                        //將b.cpp編譯成b.o

gcc -c main.cpp -o main.o         //將main.cpp編譯成main.o

gcc -a.o main.o -o main              //將a.o、b.o和main.o鏈結成main可執行檔案

以上兩種方法相比較,第一種方法編譯時需要所有檔案重新編譯,而第二種方法可以只重新編譯修改的檔案,未修改的檔案不用重新編譯。

3. 如果要編譯的檔案都在同乙個目錄下,可以用萬用字元gcc *.c -o 來進行編譯。

linux 下常用命令

linux 下根據內容查詢檔案 同時包含 keyword1 和 keyword2 的檔案 find name type f print xargs grep keyword1 grep keyword2 linux下根據程序名稱殺死程序 ps ef grep 程序名 grep v grep cut ...

linux下常用命令

1 程序顯示命令 顯示所有的程序 ps a 顯示所有的程序詳細資訊 ps al 顯示終端中的資訊 ps a 動態顯示程序資訊 top 以樹狀形式顯示程序資訊 pstree less 退出用q 顯示更詳細的資訊 ps aux或者ps ef 備註 後台程式不受終端退出影響,前台程式則要隨著終端退出而退出...

Linux下常用命令

linux下的命令實在太多,光靠找男人有時候一點都不好使,還是記一下好!一 壓縮與解壓縮命令 使用gzip程式壓縮 tar xvfz tar.gz c 使用gzip程式解壓到 目錄 tar cvfj tar.bz2 jpg 使用bzip2程式壓縮 tar xvfj tar.bz2 c 使用bzip2...