GCC 同時編譯多個 C C 檔案

2021-10-11 11:16:41 字數 2206 閱讀 7795

以下這些操作都可以共用一條gcc指令:

目錄結構如下:

wohu@ubuntu:~/cpp/src$ tree ./

./├── function.cpp

├── function.h

└── main.cpp

0 directories, 3 files

wohu@ubuntu:~/cpp/src$

function.cpp內容

#include

void

greetings()

function.h內容

void

greetings()

;

main.cpp內容

#include

#include

"function.h"

intmain()

先執行

g++ -c function.cpp  main.cpp
再執行

g++ function.o main.o -o main
完整步驟如下:

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h main.cpp

wohu@ubuntu:~/cpp/src$ g++ -c function.cpp main.cpp

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h function.o main.cpp main.o

wohu@ubuntu:~/cpp/src$ g++ function.o main.o -o main

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h function.o main main.cpp main.o

wohu@ubuntu:~/cpp/src$ ./main

hello,world

wohu@ubuntu:~/cpp/src$

直接執行

g++ main.cpp function.cpp -o main
執行過程:

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h main.cpp

wohu@ubuntu:~/cpp/src$

wohu@ubuntu:~/cpp/src$ g++ main.cpp function.cpp -o main

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h main main.cpp

wohu@ubuntu:~/cpp/src$ ./main

hello,world

wohu@ubuntu:~/cpp/src$

如果乙個專案中有十幾個甚至幾十個原始檔,我們可以進入該專案目錄,用*.c表示所有的原始檔,即執行如下指令:

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h main.cpp

wohu@ubuntu:~/cpp/src$ g++ *.cpp -o main

wohu@ubuntu:~/cpp/src$ ls

function.cpp function.h main main.cpp

wohu@ubuntu:~/cpp/src$ ./main

hello,world

wohu@ubuntu:~/cpp/src$

注意,由於在程式預處理階段,gcc編譯器會自行處理各個.c/.c++檔案內部引入的.h標頭檔案(將.h檔案中的**直接拷貝到當前.c原始檔中),因此編譯執行專案時,我們只需要提供所有的原始檔即可,不需要處理標頭檔案。

gcc 編譯多個原始檔

一.常用編譯命令選項 假設源程式檔名為test.c。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 ...

gcc 編譯多個原始檔

一.常用編譯命令選項 假設源程式檔名為test.c。1.無選項編譯鏈結 用法 gcc test.c 作用 將test.c預處理 彙編 編譯並鏈結形成可執行檔案。這裡未指定輸出檔案,預設輸出為a.out。2.選項 o 用法 gcc test.c o test 作用 將test.c預處理 彙編 編譯並鏈...

gcc 編譯多個原始檔

一.常用編譯命令選項 假設源程式檔名為test.c。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 ...