Windows+VS Code+mingw64+cmake使用opencv库
基础环境
VS Code 1.44.2
Windows10 x641909
cmake 3.17.1
mingw64 8.1.0
vsc插件有c/c++、cmake、cmake tools、C++ Intellisense
链接OpenCV库步骤
1. 下载OpenCV的二进制库,OpenCV官网发布的Windows下OpenCV库是MSVC编译的,也就是VS的编译器,Mingw是无法直接使用该库,需要重新编译OpenCV或下载别人用Mingw编译后的库,这里推荐第二种,第一种又得折腾半天。从https://github.com/huihut/OpenCV-MinGW-Build这个地址下载编译后的库,每个库都注明了编译的环境,要注意的是,别人的环境可以和自己的不尽相同,但是位数必须相同,否则就会踩坑,导致链接时无法链接到下载的库,简单来讲,mingw64就下载x64的库,32位就下载32位的库。
2. 下载完成后,文件夹里结构如下图所示,程序需要使用的头文件在include里,库文件在x64里,x64文件夹内有bin和lib两个文件夹,lib中存放mingw的.a库,bin中存放程序执行时需要的dll库。
3. 修改CMakeLists.txt文件,如下列代码所示,先设置OpenCV_DIR的路径,以方便find_package工作,否则会提示找不到OpenCV库;然后在添加头文件路径时,默认的路径会少一个opencv2,而这个又常用到,因此也加上了;接下来原本设置了库路径,后来发现不写也是可以的;最后链接OpenCV库,其中OpenCV_INCLUDE_DIRS、OpenCV_LIBS这些变量会在find_package找到OpenCV库后自动被设置。
cmake_minimum_required(VERSION 3.8.0)
project(kcf VERSION 0.1.0)
SET(CMAKE_BUILD_TYPE DEBUG)
FILE(GLOB SRC_FILE "*.cpp" "*.hpp" "*.h")
set(OpenCV_DIR "D:/ProfessionalSoftware/OpenCV-MinGW-3.4.8/x64/mingw/lib")
find_package(OpenCV REQUIRED)
# directory of opencv headers
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories("D:\\ProfessionalSoftware\\OpenCV-MinGW-3.4.8\\include\\opencv2")
# directory of opencv library
#link_directories("D:/Project/OpenCV-MinGW-Build-OpenCV-3.4.8-x64/OpenCV-MinGW-Build-OpenCV-3.4.8-x64/x64/mingw/lib")
link_libraries(${OpenCV_LIBS})
# name of executable file and path of source file
add_executable(kcf ${SRC_FILE})
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
4.GDB设置,直接启动gdb调试会报0xc0000135错误,这是由于gdb找不到动态链接库中的dll文件造成的,同时编译生成的exe程序直接执行也会报找不到dll的错误,对于直接执行exe程序的,可以将第2步中的bin文件夹加入系统环境变量的path中,再执行就不会报错,但是该方法对gdb无效,暂时不知道什么原因,为使得gdb能够正常调试,可以将第2步bin文件夹下的dll文件全部复制到生成的exe程序所在的目录,我这里是在build文件夹下,然后即可正常启动gdb调试,同时该方法对直接执行exe文件也是有效的。
上一篇: CDR怎么将轮廓转化为对象呢?
下一篇: cdr美术字和段落文本之间怎么直接转换?
推荐阅读
-
ubuontu16.04安装Opencv库引发的find_package()错误信息处理及其简单使用
-
python使用pycharm环境调用opencv库
-
Python中使用OpenCV库来进行简单的气象学遥感影像计算
-
OpenCV 使用 FLANN 库实现特征匹配
-
Windows+VS Code+mingw64+cmake使用opencv库
-
使用MinGW-w64编译opencv,并在CLion中使用opencv库
-
Python中使用OpenCV库来进行简单的气象学遥感影像计算
-
Python中使用OpenCV库来进行简单的气象学遥感影像计算
-
ubuontu16.04安装Opencv库引发的find_package()错误信息处理及其简单使用
-
Python中使用OpenCV库来进行简单的气象学遥感影像计算