使用CMake和Visual Studio搭建工程并引入OpenCV库

前言

        在之前的Windows平台下OpenCV的编译与安装_Mega_Li的博客-CSDN博客 中介绍了Windows平台中使用CMake编译OpenCV的流程。其中在install目录下生成了数个.cmake文件,其作用就是在使用CMake构建工程中引入OpenCV库时而使用。本文简要介绍如何使用CMake构建VS工程并引入之前编译好了的OpenCV库。

编写代码

        这里简单写一个测试函数,打印OpenCV的版本信息,内容如下。

#include 

#include 

int main(int argc, char** argv)
{
	printf("OpenCV version: %s\n", CV_VERSION);

	return 0;
}

编写CMakeLists.txt

        之后编写CMakeLists.txt,需要告诉CMake工程信息、编译目标信息和依赖的库、头文件信息。

cmake_minimum_required(VERSION 3.14)

project(OpenCVTest)

set(CMAKE_PREFIX_PATH D:/SDK/opencv3.4.7/build/vs2017_x64/install)
find_package(OpenCV REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(OpenCVTest opencv_test.cpp)
target_link_libraries(OpenCVTest ${OpenCV_LIBS})

        这里我们通过find_package命令来尝试寻找之前使用CMake编译安装的OpenCV库的相关信息,由于之前我们指定了自定义的OpenCV安装目录,因此我们需要将CMAKE_PREFIX_PATH设为相应的路径。这样find_package能够寻找到OpenCVConfig.cmake,并进行解析得到OpenCV_INCLUDE_DIRS(opencv头文件信息)和OpenCV_LIBS(库文件信息),在后面可直接使用。

工程构建

        CMake只是一个编译工程的构建工具,工程的编译、链接仍然通过Visual Studio完成。这里我们使用的是VS2017,且希望编译得到x64架构下的可执行程序,因此使用如下命令行完成工程构建。

mkdir build

cd build

cmake -G "Visual Studio 15 2017 Win64" ../

        之后命令行输出如下信息,表示工程构建成功,之后可使用VS打开sln工程进行代码的编译运行了。

 -- Selecting Windows SDK version 10.0.17763.0 to target Windows 10.0.19044.
-- OpenCV ARCH: x64
-- OpenCV RUNTIME: vc15
-- OpenCV STATIC: OFF
-- Found OpenCV: D:/SDK/opencv3.4.7/build/vs2017_x64/install (found version "3.4.7")
-- Found OpenCV 3.4.7 in D:/SDK/opencv3.4.7/build/vs2017_x64/install/x64/vc15/lib
-- You might need to add D:\SDK\opencv3.4.7\build\vs2017_x64\install\x64\vc15\bin to your PATH to be able to run your applications.
-- Configuring done
-- Generating done
-- Build files have been written to: D:/test/build

你可能感兴趣的:(opencv学习,visual,studio,opencv)