make和cmake詳解

平時我們工作的時候只要看到CMakeLists.txt文件,就會在終端使用cmake和make,但是很多時候我們並不清楚他們到底做什麼事

make
要設計一個軟件,我們首先編寫源碼,然後通過編譯器編譯和創建可執行文件,可執行文件就是要實現最終功能的文件。
make工具需要清楚的知道如何構建程序,他通過makefile文件知道如何構建你的程序,這個文件列出了所有的非源碼文件以及如何由別的文件來計算。

cmake
cmake支持跨平臺make,cmake能辨別使用那種編譯器去編譯給出的源碼種類,不能使用相同的編譯器去編譯所有不同種類的源碼,雖然可以手動指定使用何種編譯器,但是這就非常不方便。cmake爲每一種類型的目標平臺按照正確的順序調用命令。

cmake和make
程序編譯:

  1. 寫源代碼,比如xxx.c文件
  2. 用編譯器編譯代碼生成目標文件,比如xxx.o文件
  3. 用鏈接器連接目標代碼生成可執行文件,比如xxx.exe

但是源文件太多的情況下,這樣一個個編譯就會非常麻煩
於是make工具的出現就是爲了使用一條命令實現編譯,但是需要一個規則文件,也就是makefile,make依靠這個文件來進行批處理編譯。

但是問題又來了,對於一個大項目,編寫這個makefile是非常複雜的,所以出現了cmake工具,他能夠生成makefile。但是我們需要編寫CMakeLists.txt文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章