CMake編譯和運(yùn)行C++文件
- 編寫CMakeLists.txt
# 聲明要求的 cmake 最低版本
cmake_minimum_required( VERSION 3.1 )
# 聲明一個(gè) cmake 工程
project( pro )
# 設(shè)置編譯模式
set( CMAKE_BUILD_TYPE "Release" )
#添加OPENCV庫
#指定OpenCV版本,代碼如下
#find_package(OpenCV 3.3 REQUIRED)
#如果不需要指定OpenCV版本,代碼如下
find_package(OpenCV REQUIRED)
#添加OpenCV頭文件
include_directories(${OpenCV_INCLUDE_DIRS})
#顯示OpenCV_INCLUDE_DIRS的值
message(${OpenCV_INCLUDE_DIRS})
# 添加一個(gè)可執(zhí)行程序
# 語法:add_executable( 程序名 源代碼文件 )
add_executable( main main.cpp )
# 將庫文件鏈接到可執(zhí)行程序上
target_link_libraries( main ${OpenCV_LIBS})
- 編寫C++文件main.cpp
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(){
Mat image;
image = imread("./1.jpg");
if (image.empty()) {
cout << "Error! Input image cannot be read...\n";
return -1;
}
cout<<"圖像寬為:"<<image.cols<<"\t高度為:"<<image.rows<<"\t通道數(shù)為:"<<image.channels()<<endl;
return 0;
}
- 編譯和運(yùn)行
一般把CMakeLists.txt文件放在工程目錄下,使用時(shí),先創(chuàng)建一個(gè)叫build的文件夾(這個(gè)并非必須,因?yàn)閏make命令指向CMakeLists.txt所在的目錄,例如cmake … 表示CMakeLists.txt在當(dāng)前目錄的上一級目錄。cmake后會(huì)生成很多編譯的中間文件以及makefile文件,所以一般建議新建一個(gè)新的目錄,專門用來編譯),然后執(zhí)行下列操作:
cd build
cmake .. 生成Makefile
make
其中cmake … 在build里生成Makefile,make根據(jù)生成makefile文件,編譯程序,make應(yīng)當(dāng)在有Makefile的目錄下,根據(jù)Makefile生成可執(zhí)行文件。文章來源地址http://www.zghlxwxcb.cn/news/detail-614904.html
- 運(yùn)行,直接./main 運(yùn)行build文件夾下可執(zhí)行文件,要保證main代碼中需要用到的靜態(tài)文件也在build文件夾下(與可執(zhí)行文件在一個(gè)目錄下)。
文章來源:http://www.zghlxwxcb.cn/news/detail-614904.html
到了這里,關(guān)于Linux下CMake開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!