Makefile學習(一) 初步理解

2022-01-11 23:30:07 字數 1750 閱讀 8309

一.我對makefile的理解:

經過一段時間對makefile的學習,我理解的makefile就是將程式設計師手動編譯原始檔的過程用乙個指令碼執行,這對於小型專案來說,程式設計師手動執行和用makefile來執行感官上可能沒有大的差異,但是對於中大型專案來說,makefile的存在大大提供了程式設計師編譯**效率,乙個好的makefile檔案是乙個專案健康存在的基礎。

二.初涉makefile:

用個簡單的例子初步認識下makefile:

原始檔:test.cpp:

#include

using namespace std;

class a

private:

int a;

public:

a(int i)

a=i;

void disp()

coutprivate:

int b;

public:

b(int j)

b=j;

void disp()

coutprivate:

int c;

public:

c(int k):

a(k-2),b(k+2)

c=k;

void disp()

a::disp();

b::disp();

coutc obj(10);

obj.disp();

return 0;

makefile檔案makefile:

test:test.o

g++  test.o  -o  test   

test.o:test.cpp

g++  -c  test.cpp  -o  test.o

clean:

rm  -fr  test  test.o

test:test.o                         ---- test是目標檔案,也就是最後要生成的可執行檔案;

test.o編譯原始檔產生的中間**檔案;

這行命令的意思是:目標檔案test的產生依賴於中間**檔案test.o;

g++  test.o  -o  test           ---- 這行是編譯器通過中間**檔案產生目標檔案的命令,命令必須以tab鍵打頭,否則執行的時候會報錯;這邊使用的是g++編

譯器,所以你的環境必須安裝g++編譯器;

test.o:test.cpp                    ----這行的目標檔案是test.o,依賴檔案是test.cpp;和第一行的格式相同;

g++ -c test.cpp –o test.o     ----這行是通過原始檔test.cpp如何生成中間**檔案test.o,是編譯命令;

clean:

rm  -fr  test  test.o

clean是清除想要刪除的檔案,執行的時候需要使用命令make clean,一般是刪除中間**檔案和最後生成的目標檔案,即可執行檔案;

在環境中執行make命令,系統就會在目錄下自動尋找makefile、makefile檔案,然後執行makefile檔案中的內容;同樣,你可以指定你自己的makefile檔名,比如:makefile_201020831,執行的時候必須用make –f makefile_201020831;

makefile的執行過程是乙個遞迴的過程,目標檔案:依賴檔案,是使用命令通過依賴檔案生成目標檔案的過程;

驗證生成的目標檔案,即可執行檔案,直接./test即可。

Nginx學習 初步理解

請求方式 事件驅動 nignx事件驅動模型主要分為事件收集器,事件傳送器,事件處理器三大部分。其中事件收集器讀取到worker的各種i o請求後,交給事件傳送器處理,事件傳送器將讀取到的請求傳送給事件處理器進行處理。事件處理器是真正負責各種i o事件的,事件處理器採用多路復用模式設計。主要模型關係如...

rocketmq初步學習理解

第一步 學習怎麼安裝?問題 什麼是nameserver?什麼是borker?什麼是producer?什麼是consumer?什麼是topic?什麼是tag?nameserver為什麼不用zookeeper?啟動nameserver sh bin mqnamesrv檢視日誌tail f logs ro...

TCP協議初步理解(一)

tcp作為傳輸控制協議,控制著傳輸層。為了保證資料可靠傳遞,主要有兩種方法保證資料傳輸可靠性。重新傳送也能處理超差問題,所以重試是很多通訊協議的基礎,包括了tcp。既然有重試,那傳送方必須知道什麼時候停止重試,也就是說需要接受者的響應,一般稱之為ack。這裡又會牽扯到新的問題。第乙個問題比較麻煩,t...