以下這些操作都可以共用一條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 ...