要在Qt中使用OpenCV,按照OpenCV与Qt的环境搭建及Demo中的步骤配置了Qt Creator的编译选项,选择MSVC,再修改.pro文件:
INCLUDEPATH += D:\Program Files\opencv\opencv3.4.0\build\include
CONFIG(debug, debug|release): {
LIBS += -LD:\Program Files\opencv\opencv3.4.0\build\x64\vc14\lib \
-lopencv_world340d
} else:CONFIG(release, debug|release): {
LIBS += -LD:\Program Files\opencv\opencv3.4.0\build\x64\vc14\lib \
-lopencv_world340
}
结果qmake没什么问题,编译时报错了……提示“LNK1146: 没有用选项“/LIBPATH:”指定的参数”
百度之,发现问题是我的路径名里有空格(点也不行)。INCLUDEPATH直接加上双引号就行,而对于链接库,CSDN里给的解决方法都是使用MSVC的#pragma comment,但这样对跨平台有点影响啊……
无奈只好去找.pro文件编写的官方文档,在 Variables | qmake Manual这里我找到了想要的内容:
那么第一个-L用双引号加上就行啦~
修改并使编译成功的代码:
INCLUDEPATH += "D:\Program Files\opencv\opencv3.4.0\build\include"
CONFIG(debug, debug|release): {
LIBS += "-LD:\Program Files\opencv\opencv3.4.0\build\x64\vc14\lib" -lopencv_world340d
} else:CONFIG(release, debug|release): {
LIBS += "-LD:\Program Files\opencv\opencv3.4.0\build\x64\vc14\lib" -lopencv_world340
}
/*****************************
QT Creator 添加外部库的方法:
1.代码撰写
1.1 附加头文件包含目录
1.1.1 INCLUDEPATH += ./boost/include \
src/thirdpart/include //用相对路径的方法包含了两include
1.1.2 INCLUDEPATH += D:/boost/include \
E:/vms/include //使用绝对路径包含两个include
1.2 链接库
1.2.1 LIBS += -LD:/vms/Libraries/ -lib1 \
-LD:/vms/Libraries/ -lib2 \ //注意 -L 以及跟路径间没有空格
1.2.2 LIBS += D:/vms/Libraries/lib1 \ //使用绝对路径没有-L -l
1.2.3 LIBS += $$PWD/Libraries/lib1 \ //相对路径(只适用于windows的静态库)
注意(.lib .a是静态库 ; .so 是动态库) , 对于配置了动态库的必须把相应的dll至于exe执行目录或者在环境变量中配置路径
2. 通过右键项目,点击添加库(不知道为什么有时候可以,有时候不行)
选择外部库
/*************************
win32 { INCLUDEPATH += 'C:/Program Files (x86)/IVI Foundation/VISA/WinNT/Include' LIBS+='C:/Program Files (x86)/IVI Foundation/VISA/WinNT/lib/msc/visa32.lib' }
/***********************
#INCLUDEPATH += E:\whh\softTool\Qt\files\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include #INCLUDEPATH += E:\whh\softTool\Qt\files\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include\opencv2 #LIBS += E:\whh\softTool\Qt\files\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\x64\mingw\bin\libopencv_*.dll INCLUDEPATH +=.\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include INCLUDEPATH += .\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include\opencv2 LIBS += .\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\x64\mingw\bin\libopencv_*.dll