You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用CMake链接OpenCV库仍出现undefined reference报错如何解决?

问题根因

  • 你当前使用Cygwin GCC编译器编译代码,但链接的是vc15版本的OpenCV预编译库。vc15是微软Visual Studio 2017对应的编译链,和GCC的ABI、目标文件格式完全不兼容,就算库被CMake找到也无法完成链接,这是出现undefined reference报错的核心原因。
  • 你日志里的OpenCV_LIBS输出所有库名连在一起,说明本地的OpenCV配置脚本读取路径也存在异常,本质也是库版本和编译器不匹配导致的。

解决方案

可任选以下其中一种方案解决:

方案1:切换CLion编译链为Visual Studio(操作成本最低)

  1. 打开CLion设置,找到Build, Execution, Deployment -> Toolchains
  2. 添加Visual Studio编译链,选择本地已安装的VS2017及以上版本(需提前安装VS并勾选C++开发组件)
  3. 将该编译链设为默认,清理原有CMake缓存后重新编译即可,原有vc15版本的OpenCV库可直接正常使用。

方案2:使用适配Cygwin的OpenCV版本

  1. 打开Cygwin的包管理器,搜索并安装预编译的libopencv、libopencv-devel相关包
  2. 修改CMakeLists.txt里的find_package语句,删除指定的PATHS参数,让CMake自动搜索Cygwin环境下的OpenCV库
  3. 清理CMake缓存后重新编译即可。

方案3:使用MinGW编译链+对应OpenCV版本

  1. 下载对应MinGW版本的OpenCV预编译包,或者自行用MinGW编译OpenCV源码
  2. 在CLion中切换编译链为MinGW,修改CMakeLists.txt中find_package的PATHS路径为MinGW版本OpenCV的库路径
  3. 清理缓存后重新编译即可。

内容的提问来源于stack exchange,提问作者Badi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:36:10