一.我對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...