1 假設(shè)都在同一個(gè)文件夾下
main.cpp func.cpp func.h
a> g++ -c func.cpp 生成 func.o 文件
b> g++ -c main.cpp 生成 main.o文件
c> g++ main.o func.o -o demo 將多個(gè)文件鏈接生成 demo.exe
一般不對.h 文件進(jìn)行編譯
include 'func.h' 從當(dāng)前文件尋找頭文件
include <func.h> 先搜索 -i 的指定路徑, 然后尋找本地路徑
2 不在同一個(gè)文件夾下
則應(yīng)該遵循如下風(fēng)格, 編譯則需要添加參數(shù) -I 指定路徑
| --func1
| |--func1.cpp
| |--func1.h
| -- func2
| |--func2.cpp
| |--func2.h
| -- main
| |--main.cpp
3 -I 指定操作的路徑
-c 將文件編譯, 但是不鏈接, 將代碼變成機(jī)器碼
g++ -c func.cpp -o func.o
-o 鏈接器: 將.o文件和依賴的庫文件 鏈接起來 編譯成可執(zhí)行的文件
gcc -o main main.o ../myinclude/myhead.o
4 編譯要求
a> 如果工程所有文件都沒有編譯過,則所有的都需要編譯,并鏈接
b> 如果部分文件被修改,則編譯部分文件 并鏈接目標(biāo)
c> 如果頭文件被修改 只需要編譯引用頭文件的文件并鏈接