使用Cmake导入OpenCV库的大坑记录

CMakeLists.txt

复制代码
cmake_minimum_required(VERSION 3.20)

set(OpenCV_DIR D:/Package/opencv4/opencv/mingw-build/install)    #这里根据自己OpenCV位置设定

find_package(OpenCV REQUIRED)

project(PROJ1 CXX)

add_executable(PROJ1 main.cpp)

target_include_directories(PROJ1 PRIVATE ${OpenCV_INCLUDE_DIRS})
target_link_libraries(PROJ1 PRIVATE ${OpenCV_LIBS})

cmake命令

1.cmake默认情况下* Visual Studio 17 2022 = Generates Visual Studio 2022 project files.Use -A option to specify architecture.生成VS工程,使用MSVC编译,结果报错opencv fatal error LNK1107: 文件无效或损坏: 无法在 0x3F0 处读取,按照网络教程需要更换Mingw。

2.在 Windows平台下,mingw64 需要用 posix 接口的 thread 库,之前电脑上安装了Mingw win32的那个版本,编译会报错"...mutex..."之类的错误。

3.于是重新安装mingw64,这里按照大部分教程教你安装Mingw64的SourceForge界面会不一样,原因是官网把新版内容放在GitHub上了。

Downloads - MinGW-w64 这个是Mingw下载页的官网,可以对应找到https://github.com/niXman/mingw-builds-binaries/releases

cmake编译时要使用下面的命令,选择MinGW。

bash 复制代码
cmake -G "MinGW Makefiles" -B build    #这一步是使用MinGW编译
cmake --build build

4.然后接着比较坑的是, 编译会出现"undefined reference to xxx"错误,库链接出现问题,而且网上找了不少教程之后都没法解决问题(包括加入命令,添加Windows环境变量,降低OpenCV版本),只好放弃使用现成的库文件。

5.使用MinGW重新编译OpenCV4的源代码,编译教程可以参考:

CMake + mingw + opencv_mingw opencv编译debug-CSDN博客

至此使用上面提到的CMakeLists.txt就没有问题了。

记得将D:\Package\opencv4\opencv\mingw-build\install\x64\mingw\bin目录加入PATH,程序运行时需要用到。

相关推荐
【建模先锋】6 小时前
精品数据分享 | 锂电池数据集(10)基于阻抗的锂离子电池在不均衡使用情况下的性能预测
人工智能·python·深度学习·锂电池·锂电池寿命预测·锂电池数据集·剩余寿命预测
Trouvaille ~6 小时前
零基础入门 LangChain 与 LangGraph(五):核心组件上篇——消息、提示词模板、少样本与输出解析
人工智能·算法·langchain·prompt·输入输出·ai应用·langgraph
吃一根烤肠6 小时前
2026年4月AI大事件深度解读:大模型竞争进入“深水区“
人工智能
小陈工7 小时前
数据库Operator开发实战:以PostgreSQL为例
开发语言·数据库·人工智能·python·安全·postgresql·开源
慕涯AI7 小时前
Agent 30 课程开发指南 - 第21课
人工智能·python
源码之家7 小时前
计算机毕业设计:Python城市天气数据挖掘与预测系统 Flask框架 随机森林 K-Means 可视化 数据分析 大数据 机器学习 深度学习(建议收藏)✅
人工智能·爬虫·python·深度学习·机器学习·数据挖掘·课程设计
数智化管理手记7 小时前
零基础认知精益生产——核心本质与必避误区
大数据·数据库·人工智能·低代码·制造
用户5191495848457 小时前
Kubernetes kubeadm 集群部署与 CKA 实战指南
人工智能·aigc
幻风_huanfeng7 小时前
人工智能之数学基础:坐标下降法
人工智能·深度学习·计算机视觉·梯度下降法·坐标下降法
弋痕7 小时前
Graphiti 实时知识图谱实战笔记
人工智能