CMake作為一個開源的跨平台編譯工具,由于其不依賴于特定編譯器的特性,對于我們跨平台編譯程式有着十分大的幫助,作為本系列的第一篇,介紹CMake是什麼,CMake的安裝,以及CMake語句的主體架構。
本篇包含内容:
- 什麼是CMake
- CMake安裝
- CMake主體架構
1. 什麼是CMake?
可能大家平時有用過或者聽說過其它的一些make工具,例如GNU Make, QT的qMake, 微軟的MS nmake, BSD Make等等 。這些Make工具遵循着各自的規範和标準,但都有着同樣的一個問題:如果軟體想要跨平台編譯的話,便要每一種标準寫一次Makefile,這會帶來非常大的麻煩。
“CMake”是“Cross platform make”的縮寫,它是一個針對上述問題所開發的開源跨平台的編譯工具,它允許開發者編寫一種與平台無關的CMakeList.txt檔案來定制整個編譯流程,再根據目标使用者的平台進一步生成所需的本地化Make -file和工程檔案。例如我們最常用的開源項目之一OpenCV,ROS中的catkin, ament, colcon就是使用CMake作為項目架構系統的。

2. CMake安裝
- windows系統安裝
登入CMake官網(cmake.org/download),下載下傳對應版本的CMake安裝器
安裝選項中勾選添加CMake到系統環境變量中(也可以選擇安裝後手動添加) 安裝成功後可以直接運作GUI版CMake
由于我們安裝過程中添加了環境變量,重新開機後打開cmd,輸入
cmake
,顯示相關資訊表示安裝成功
- Linux系統安裝
下面内容以Ubuntu系統舉例
首先打開終端,解除安裝已經安裝的舊版本CMake(非必需)
接下裡我們下載下傳2020年3月2日最新釋出的版本
解壓
友善管理,我們将解壓後的檔案夾放在系統的/opt檔案夾中
最後建立與bash的軟連結,Ubuntu系統下的安裝便完成了
我們執行指令測試一下,首先是指令行版的:
GUI版:
- Mac系統安裝
和Windows版安裝一樣,首先在官網( cmake.org/download ) 上下載下傳CMake的GUI版本:
安裝完打開應用,選擇菜單欄中的Tools->How to install Fow Command Line Use
接下來我們打開Mac的終端,根據需求配置指令行版的CMake:
1)臨時使用(關閉指令行視窗即失效):
PATH="/Applications/CMake.app/Contents/bin":"$PATH"
2)關閉指令行後不失效:
sudo "/Applications/CMake.app/Contents/bin/cmake-gui"--install
配置完後檢視是否安裝成功:
cmake --version
3. CMake的主體架構
當我們建構一個CMake架構(編寫CMakeLists.txt檔案)時,我們很自然的會想到以下幾個問題:
- 最終的輸出目标是什麼:可執行程式,動态庫,靜态庫
- 輸出目标檔案所需的檔案及環境是什麼:編譯參數,環境,源檔案
- 輸出目标檔案是通過怎樣的邏輯連結起來的:内外依賴的pkg和lib,如何連結外部庫 我們根據上面這個思路,就得到了CMake的Makelist設計的整體架構,接下來的就是通過具體的CMake的指令來逐漸填補了。
下一期将建立一個CMake的Helloworld工程來講解CMake的各種指令。
精彩内容回顧:
深度強化學習簡介
JavaEE留言闆項目後端開發
機器視覺基礎(二):相機和鏡頭選型
十大經典排序算法的分析與實作
關于CVNewbie
我們是一群哈工大,上海交大,華科大,航天八院和國防科大的碩博共同營運的公衆号,我們樂于總結知識,與大家共同進步,歡迎關注我們的公衆号【CVNewbie】!