cmake 编译Opencv

Opencv 与cmake

cmake 构建opencv项目

Ubuntu 14.04  安装  sudo apt-get install libcv-dev

 

SET指令的语法是:

SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

1. 现阶段,你只需要了解SET指令可以用来显式的定义变量即可。这里我们将变量CMAKE_RUNTIME_OUTPUT_DIRECTORY定义为${opencv_test_SOURCE_DIR}/bin也就是工程路径下的bin目录。

OpenCV_FOUND、OpenCV_INCLUDE_DIRS、OpenCV_LIBRARY_DIRS、OpenCV_LIBRARIES

分别指是否找到OpenCV,OpenCV的头文件目录,OpenCV的库文件目录,OpenCV的所有库文件列表

 

include_directories(${OpenCV_INCLUDE_DIRS})

这个指令用来设置包含的头文件的路径。

 

link_directories(${OpenCV_LIBRARY_DIRS})

这个指令用来设置库文件的路径。

 

target_link_libraries(opencv_test ${OpenCV_LIBS})

这个指令用来设置需要的库文件,它的语法是:

 

TARGET_LINK_LIBRARIES(target library1 library2...)

其中的target就是前面设置生成的目标文件(可执行文件):

 

add_executable(opencv_test src/opencv_test.cpp)

1. 这个命令很好理解,首先是可执行文件的名字,然后是源码的名字。因此,这个命令一定要在TARGET_LINK_LIBRARIES之前使用。

cmake_minimum_required(VERSION 3.0)   //必须有

project(soTest)     //项目名称

Find package(OpenCV REQUIRED) //在系统中自动查找配置构建工程所需的程序库。在linux和unix类系统下这个命令尤其有用。CMake自带的模块文件里有大半是对各种常见开源库的find_package支持,支持库的种类非常多。

include_directories(${OpenCV_INCLUDE_DIR} ${CMAKE_CURRENT_LIST_DIR})   //设置包含的头文件的路径

link_directories(${OpenCV_LIBRARY_DIRS})   //用来指定库文件的路径

add_library(hello_lib hello.cpp)

ADD_EXECUTABLE(project main.cpp)   //在target_link_libraries前使用

target_link_libraries(hello hello_lib)

 

构建项目

进入build目录,然后开始构建:

cd build

cmake ..

因为CMakeLists.txt在buil的父目录中,因此make命令之后使用..。

 

-- Configuring done

-- Generating done

-- Build files have been written to: /home/liuchaoyang/grad_proj/opencv_test/build

这样就构建成功了,构建之后会生成很多文件,其中就有Makefile文件。

 

然后编译生成可执行文件:

make

 

[ 50%] Building CXX object CMakeFiles/opencv_test.dir/src/opencv_test.cpp.o

[100%] Linking CXX executable ../bin/opencv_test

[100%] Built target opencv_test

 

运行生成的可执行文件以测试我们是否成功

 

 

 

 

--------------------- 

作者:奋斗的小鸟lcy 

来源:CSDN 

原文:https://blog.csdn.net/github_30605157/article/details/79839177 

版权声明:本文为博主原创文章,转载请附上博文链接!

 

你可能感兴趣的:(Opencv,编译)