ubuntu下安裝cmake及cmake簡單使用

2021-10-14 11:23:11 字數 1421 閱讀 1235

前言

最近突然想將開發環境轉移到linux上,同時也準備閱讀些github上的開源**,發現現在開源專案一般都是用cmake管理的。所以就在自己的虛擬機器上搗鼓了一天。一開始我也不知道cmake是啥,後來通過折騰也大概知道其作用,它所做的事其實就是告訴編譯器如何去編譯鏈結源**。你也許想問不是有makefile嗎,為什麼還要它?這裡就牽涉到跨平台問題。在windows平台下是通過project檔案去管理這些的,如果不用cmake,那我們為window和linux系統就要寫對應的project檔案和makefile檔案,這無疑是一件繁瑣的事,而我們只要編寫一次cmake,就可以用在各個平台,而且其語法也簡單。這就是所謂的「write once,use everywhere」。

安裝過程2.輸入如下命令

$tar -zxvf xx.tar.gz

$./bootstrap

$make

$make

install

輸入以上命令後就已經可以在ubuntu上安裝好cmake

編寫簡單的cmake

使用cmake首先得有個cmakelist.txt檔案,你需要把配置資訊寫在該檔案中,然後通過cmake去處理該檔案。

假設有下面乙個main.cpp檔案

檔案

#include

using namespace std;

intmain()

這時候我們就可以寫個如下的cmakelist.txt檔案

#cmake最小需要版本

cmake_minimum_required

(version 2.8

)#專案名字

project

(helloworld)

#包含原程式,即把給定目錄下的源程式複製給變數dir_src

aux_source_directory

(dir_src ./)

#生成程式

add_executable

(helloworld $

)

然後執行如下命令

$mkdir build

$cd build

$cmake

..$make

$./helloworld

這樣就編譯好程式並執行。

新增靜態庫或者動態庫

而假設我們程式用到了在/usr/lib下的乙個靜態庫libmy.a,那就需要新增如下兩個命令

#庫所在位置

link_directories(/usr/lib)

#程式編譯時候鏈結庫

target_link_libraries(helloworld my)

Ubuntu下的cmake自選版本安裝

第一步 清除已安裝的cmake 如果安裝了低版本的話 wget第三步 解壓壓縮包 你可以解壓到你想要的位置 tar zxvf cmake 3.20.5.tar.gz第四步 編譯構建 進入到解壓的cmake主目錄下,執行 s.bootstrap過程需要耗費一定的時間 如果出現提示找不到對應版本c 編譯...

ubuntu下cmake設定opencv鏈結庫

問題1 在編譯視覺slam十四講第九講的時候,出現如下錯誤 undefined reference tocv string allocate unsigned long cmakefiles run vo.dir run vo.cpp.o in functioncv mat mat 詳細錯誤如下圖 ...

ubuntu下更新cmake版本

1 解除安裝當前舊版本的cmake 檢視當前的cmake版本 cmake version 若版本較舊,執行 sudo apt remove cmake,解除安裝舊版的cmake 若當前系統無cmake,可跳過這一步。2 安裝依賴 sudo apt install build essential li...