简单的运用opencv库生成程序的CMakeLists模板(Linux与windows)

#linux上CMakeLists 
#CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (opencvTest)


# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(./src SRC_LIST)


#引用头文件
include_directories (/usr/local/include/opencv4)
include_directories (/usr/local/include/opencv4/opencv2)


#引用库文件
link_directories(/home/adlink/wjp/opencv-4.5.3/build/lib)


# 指定生成目标
add_executable(opencvTest ${SRC_LIST})

# .链接库文件
target_link_libraries (opencvTest
opencv_imgproc opencv_core opencv_features2d opencv_highgui opencv_photo opencv_calib3d opencv_dnn  
opencv_flann opencv_gapi opencv_imgcodecs opencv_ml opencv_objdetect opencv_stitching opencv_videoio opencv_video 
)
#windows上CMakeLists
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (opencvTest)


# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(./src SRC_LIST)


#引用头文件
include_directories(D:\\opencv-4.1.0\\build\\include)
include_directories (D:\\opencv-4.1.0\\build\\include\\opencv2)


#引用库文件
link_directories(D:\\opencv-4.1.0\\build\\x64\\vc15\\lib)


# 指定生成目标
add_executable(opencvTest ${SRC_LIST})

# .链接库文件
target_link_libraries (opencvTest opencv_world410d)

运用测试的src文件

#include "opencv2/opencv.hpp"
 
using namespace cv;
using namespace std;
 
int main()
{
	Mat src;
	//加载图片
	src=  imread("D:\\wjpcodeD\\test\\pic\\1.bmp", 0);
       //检测是否加载成功
	if(!src.data)  //or == if(src.empty())
	{
	     cout<<"Could not open or find the image"<< endl;
		 return -1;
	}
	// 创建窗口
   namedWindow("Display");
        //显示图像
	imshow("Display", src);
 
	//暂停,等待按键结束
	waitKey(0 );
 
	return 0;
}

生成库

#linux上CMakeLists 
#CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project (opencvTest)

#这里是库头文件
include_directories (include)
aux_source_directory(src SRC_LIST3)
#编译动态库静态库
add_library (test2_shared SHARED ${SRC_LIST3})
add_library (test2_static STATIC ${SRC_LIST3})

#改名
set_target_properties (test2_shared PROPERTIES OUTPUT_NAME "test2")
set_target_properties (test2_static PROPERTIES OUTPUT_NAME "test2")

#输出地址
set (LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

交叉编译时使用arm.cmake交叉编译编译工具链

set(CMAKE_TOOLCHAIN_FILE "arm.cmake")
SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
SET(CMAKE_SYSTEM_VERSION 1)

# # linuxarm
# set(tools /usr/bin)
# SET(CMAKE_C_COMPILER ${tools}/aarch64-linux-gnu-gcc)
# SET(CMAKE_CXX_COMPILER ${tools}/aarch64-linux-gnu-g++)
# SET(CMAKE_FIND_ROOT_PATH /usr/aarch64-linux-gnu)

# #win下arm
include(CMakeForceCompiler)
set(tools D:/code_env/gcc-7.5.0/bin)
SET(CMAKE_CXX_COMPILER ${tools}/aarch64-linux-gnu-g++.exe)
SET(CMAKE_C_COMPILER ${tools}/aarch64-linux-gnu-gcc.exe)
# 查找库
SET(CMAKE_FIND_ROOT_PATH D:/code_env/gcc-7.5.0/aarch64-linux-gnu/libc)



SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")
SET(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} --sysroot=${CMAKE_FIND_ROOT_PATH}")

# Search for programs only in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)

# Search for libraries and headers only in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

SET(CMAKE_ARM_COMPILATION 1)

#linux编译时候加上参数  cmake -DCMAKE_TOOLCHAIN_FILE=../arm.cmake ..
# win下编译时加上参数 cmake -G "Unix Makefiles" -D CMAKE_TOOLCHAIN_FILE=../arm.cmake ..
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值