CMake 编译 OpenCV 项目,不是编译OpenCV, 用了之后才知道CMake也太好用了。

新建一个 CMakeList.txt
复制下面代码,并保存

cmake_minimum_required (VERSION 3.0)

PROJECT(Chapter2)

set (CMAKE_CXX_STANDARD 11)

IF(EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
    include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
    conan_basic_setup()
ENDIF()

# Requires OpenCV
set(OpenCV_DIR D:/opencv/build/x64/vc15/lib)
FIND_PACKAGE( OpenCV REQUIRED )
MESSAGE("OpenCV version : ${OpenCV_VERSION}")


ADD_EXECUTABLE( sample1 sample1.cpp )
TARGET_LINK_LIBRARIES( sample1 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf ) 


ADD_EXECUTABLE( sample2 sample2.cpp )
TARGET_LINK_LIBRARIES( sample2 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)

ADD_EXECUTABLE( sample3 sample3.cpp )
TARGET_LINK_LIBRARIES( sample3 ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)

ADD_EXECUTABLE( ${PROJECT_NAME} main.cpp )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${OpenCV_LIBS} ${CONAN_LIBS} -lprotobuf)

然后就新建一下文件夹(你的工程名),当然,你不建也是可以的。只是方便自己管理工程
并把CMakeList.txt复制到文件夹下我的文件夹是D:\Chapter2

其中
sample1.cpp
sample2.cpp
sample3.cpp
main.cpp
是你的C++的程序

接下来就是编译了。
打开CMD
cd到D:\Chapter2文件夹后就可以到下面的命令了

mkdir build
cd build
cmake .. -G "Visual Studio 15 2017 Win64"

然后等待就可以了。

可能出现的错误:
1,出来 Required OpenCV but cannot find one. 类似的这种解决就是路径没有设置好。CMakeLists里的set(OpenCV_DIR D:/opencv/build/x64/vc15/lib) 这个就是你要设置的opencv的路径,不能设置到D:/opencv/build,不然还是会继续报 no binary的错。
2020-03-31 更新,如果把opencv的路径添加到了系统的环境变量,可以不用在cmakelist 设置opencv的路径了。

2,编译成功后,但是打开工程,却会报 模块计算机类型x64与目标计算机类型X86冲突。
这种是直接在编译的时候 cmake … , 这样就会x86的编译器编译了。 所以要用 cmake … -G “Visual Studio 15 2017 Win64”,看你自己的Visual Studio 的版本,就用自己的版本,我的是2017的。

3,如果编译成功后。打开你的工程,然后编译成功后,还可能报 “无法启动程序 debug\ALL_BUILD 拒绝访问”,可以把ALL_BUILD删除了。或者把启动项目更改为你的项目(如下图)。再尝试一下。应该可以的了。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jasneik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值