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

Windows下Qt5集成预编译OpenCV3.4.5遇LNK1104错误求助

问题分析与解决方案

你的链接错误根源在于.pri文件中LIBS的语法写错了,导致Qt的qmake解析库路径时出现偏差,误以为要找.obj文件(而我们实际需要链接的是.lib静态/导入库)。

错误原因拆解

你原来的写法里,把-l(用于指定库名的前缀)和库路径直接连在一起写成lc:/...,qmake会把这个l当成库名的一部分,并且错误地将整个路径解析为要查找的目标文件,所以才会出现找不到lc:\opencv-3.4.5\prebuild\x64\vc14\lib\opencv_world345d.obj的错误。

修正后的.pri配置(两种可选方式)

方式一:推荐使用-L指定库目录 + -l指定库名

这种写法更符合qmake的规范,也更灵活:

INCLUDEPATH += C:/opencv-3.4.5/prebuild/include \
               C:/opencv-3.4.5/prebuild/include/opencv \
               C:/opencv-3.4.5/prebuild/include/opencv2

# 先指定OpenCV库文件所在的目录
LIBS += -LC:/opencv-3.4.5/prebuild/x64/vc14/lib

Debug: {
    # 链接Debug版本的库(不带.lib后缀)
    LIBS += -lopencv_world345d
}

Release: {
    # 链接Release版本的库
    LIBS += -lopencv_world345
}

方式二:直接指定完整的库文件路径

如果你更喜欢直白的路径写法,可以直接写出.lib文件的完整路径:

INCLUDEPATH += C:/opencv-3.4.5/prebuild/include \
               C:/opencv-3.4.5/prebuild/include/opencv \
               C:/opencv-3.4.5/prebuild/include/opencv2

Debug: {
    LIBS += C:/opencv-3.4.5/prebuild/x64/vc14/lib/opencv_world345d.lib
}

Release: {
    LIBS += C:/opencv-3.4.5/prebuild/x64/vc14/lib/opencv_world345.lib
}

额外检查点

  1. 确认你的Qt编译器版本和OpenCV预编译库的编译器匹配:你用的是vc14版本的OpenCV库,对应的是VS2015编译器,确保Qt套件使用的是MSVC2015(x64),否则会出现不兼容的链接错误。
  2. 你已经把C:\opencv-3.4.5\prebuild\x64\vc14\bin添加到系统Path的操作是正确的,这保证了程序运行时能找到OpenCV的.dll文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:49:59