CMake 專案實踐

2021-10-04 23:04:03 字數 3766 閱讀 9662

基本語法

linux 下 opencv + cmake

平台選擇

參考:win10 + cmake + mingw 簡單使用

編寫原始碼和cmakelists.txt

在原始碼路徑下新建子目錄build,並進入

執行命令cmake -g 「mingw makefiles」 ..:win下只生成makefiles,省得出現各種vs sln檔案

執行命令mingw32-make即可生成exe

執行project.exe編寫原始碼和cmakelists.txt

在原始碼路徑下新建子目錄build,並進入

執行命令cmake ..」:預設生成makefiles

執行命令make即可

執行projectlinux中可執行檔案無字尾

cmakelists.txt 的語法比較簡單,由命令、注釋和空格組成。符號 # 後面的內容被認為是注釋。命令由命令名稱、小括號和引數組成,引數之間使用空格進行間隔。其中命令是不區分大小寫的,但是命令中的引數或者說變數都是區分大小寫的。

# 最低版本號要求

cmake_minimum_required

(version 3.15

)# 應用的c++標準

set(cmake_cxx_standard 11

)# 工程名

project

(demo)

# 新增生成目標

add_executable

(demo main.cpp other.cpp)

同一目錄下,用到了多少個cpp檔案就新增多少個,不用管標頭檔案。如果想省事可以使用aux_source_directory(不推薦,不能檢測目標檔案的變動,而cmake需要實時載入)

主目錄:

# 最低版本號要求

cmake_minimum_required

(version 3.15

)# 應用的c++標準

set(cmake_cxx_standard 11

)# 工程名

project

(demo)

# 新增子目錄

add_subdirectory

(module1)

add_subdirectory

(module2)

# 新增生成目標

add_executable

(demo main.cpp)

# 鏈結庫

target_link_libraries

(demo module1 module2)

子目錄:

# 最低版本號要求

cmake_minimum_required

(version 3.15

)# 查詢所有原始檔,並將名稱儲存到 src_dir 變數

aux_source_directory

(. src_dir)

# 生成靜態鏈結庫以供呼叫,引數為 static

add_library

(module1 static $

)

每乙個子目錄都要這樣

檔案結構:

workspace

├── cmake-build-debug

├── cmakelists.txt

├── demo1

│ ├── cmakelists.txt

│ └── main.cpp

└── demo2

├── cmakelists.txt

└── main.cpp

主目錄:

cmake_minimum_required

(version 3.8

)project

(workspace)

add_subdirectory

(demo1)

add_subdirectory

(demo2)

demo1:

cmake_minimum_required

(version 3.8

)project

(demo1)

set(cmake_cxx_standard 17

)aux_source_directory

(. src)

add_executable

(demo1 $

)

demo2:

cmake_minimum_required

(version 3.8

)project

(demo2)

set(cmake_cxx_standard 17

)aux_source_directory

(. src)

add_executable

(demo2 $

)

見如下的opencv**示例

linux下編譯opencv庫:

新建opencv資料夾,並進入

解壓

unzip opencv-master.zip

unzip opencv_contrib-master.zip

編譯

mkdir build

cd build

cmake -ddopencv_extra_modules_path=

../opencv_contrib-4.5.1/ ../opencv-4.5.1/

make -j 8

配置環境變數

cd /etc

vi bashrc

# 在檔案後追加

export opencv_dir=/root/libs/opencv/build/

export path=

$path

:$opencv_dir

source bashrc

使用cmake構建測試專案

如果不想新增環境變數,就手動在cmakelists.txt指定 opencv_dir的路徑,並在執行時新增動態庫的引數。如在clion中執行則需要設定如下引數:

CMake 專案管理

專案目錄結構如下 seed 總專案 seed bp 專案公共依賴庫 seed server 業務後台服務 seedother 其他後台服務 seedout 專案輸出目錄已經依賴目錄 2.目錄結構圖 3.cmakelist.txt編寫 3.1.工程總配置 seed cmakelists.txt,工程總...

CMake構建CUDA專案

在大量的c c 的專案中都使用cmake來進行專案的管理,而cuda又是很流行的平行計算庫,利用cmake來構建cuda專案就顯得很有必要了,而且專案中使用的cmakelists.txt基本框架一致的,下面簡單地記載一下這種cmakelists.txt檔案的內容 cmakelists.txt for...

Qt專案 Cmake出錯

cmake warning dev at c qt qt5.2.1 5.2.1 msvc2012 64 lib cmake qt5core qt5coremacros.cmake 224 configure file configure file called with unknown argume...