目標:運行C++代碼
example:有func.h,func.cpp, main.cpp
- .h無需編譯,但.h中函數(shù)實現(xiàn)的地方需要編譯(func.cpp)
- 邏輯:cpp各自生成可執(zhí)行文件(.o),再進行鏈接
g++ -c func.cpp
g++ -c main.cpp
g++ main.o func.o -o test
或者直接:g++ main.cpp func.cpp -o test
編譯多目錄下的文件時,可以利用 -I 指定需要鏈接的文件的地址,例如下圖:先生成myhead.cpp的可執(zhí)行文件myhead.o,然后再編譯main.cpp時指定其頭文件&頭文件函數(shù)定義地址myhead.o。

頭文件:
include有兩種方式:#include “”,#include <>。
區(qū)別在于:前者是從當前的目錄來搜索,后者是一般會先搜索 -I 選項后的路徑(即用gcc/g++編譯時的-I選項),之后就是標準的系統(tǒng)頭文件路徑。
通過cpp -v命令,可以查看標準系統(tǒng)頭文件的路徑。
一般是這三個目錄:usr(unix system resource)
usr/include
usr/lib/include
usr/local/include
如果我們在給要編譯的代碼加上自己的頭文件,應該怎么辦?
1,在path里面加上自己的目錄
2,gcc或g++ 編譯的時候 ,加上 -I 選項
最暴力g++:把所有文件、依賴都寫上
示例:https://github.com/tuhahaha/ddbms200
readme里面的編譯方式,可以結(jié)合著makefile和g++指令來看。