g++ linux

目標:運行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++指令來看。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容