#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 ..