基本語法
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
即可
執行project
linux中可執行檔案無字尾
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...