奇怪的OpenCV链接错误,使用Visual Studio编译器

时间:2015-03-20 10:10:07

标签: c++ opencv

运行简单的OpenCV项目时遇到以下链接错误:

LNK1104: cannot open file 'win32:LIBS.obj'

我发现错误很奇怪,因为它出现在某些计算机上,而在其他计算机上OpenCV工作正常,即使计算机具有相同的设置。 LIBS.obj似乎不存在于我测试过的任何计算机上(谷歌对我没什么帮助,因为lib文件夹的路径等似乎是正确的......)

代码,使用QtCreator与Visual Studio Compiler和OpenCV 2.4(其他版本也经过测试):

#include "opencv2/imgproc/highgui.hpp"
int main() {
   cv::namedWindow("hello", CV_WINDOW_AUTOSIZE);
   cv::waitKey();
}

在QtCreator项目文件中添加了行:

win32:INCLUDEPATH += C:\opencv\build\include
win32:LIBS += -L"C:\opencv\build\x64\vc12\bin" \
win32:LIBS += -L"C:\opencv\build\x64\vc12\bin" \
              -L"C:\opencv\build\x64\vc12\lib" \
win32:LIBS += -lopencv_core2410d -lopencv_highgui2410d

项目已经过qmaked / clean / rebuild等。计算机设置可能会有所不同(例如,我在Windows 7/8 / 8.1上遇到了同样的问题。)。一个特定的设置,程序在一台计算机上正常工作,而在另一台计算机上则没有:

  • Windows 8.1
  • QtCreator(Qt版本5.4)
  • Visual Studio编译器(x86_amd64)
  • OpenCV 2.4.10,预构建,解压缩到C:/ opencv文件夹

有关如何调试此链接错误的任何建议(是的,我已经完成了诸如检查路径,32对64位兼容性等明显的事情。)

1 个答案:

答案 0 :(得分:0)

在大多数情况下,只有静态库(.lib)目录被添加到win32:LIBS。动态库在环境变量PATH中指定。 尝试删除该行:

win32:LIBS += -L"C:\opencv\build\x64\vc12\bin"

并将此目录添加到项目PATH,而不是单击QtCreator中的项目属性选项卡。 `