QT creator 5.9.1(MSVC2015 64bit)+OpenCV4.4.0(VC14),想简单的显示一张图片,配置环境后运行报错,如下:
main.obj👎 error: LNK2019: 无法解析的外部符号 “void __cdecl cv::fastFree(void *)” (?fastFree@cv@@YAXPEAX@Z),该符号在函数 “public: __cdecl cv::Mat::~Mat(void)” (??1Mat@cv@@QEAA@XZ) 中被引用
main.obj👎 error: LNK2019: 无法解析的外部符号 “public: void __cdecl cv::Mat::deallocate(void)” (?deallocate@Mat@cv@@QEAAXXZ),该符号在函数 “public: void __cdecl cv::Mat::release(void)” (?release@Mat@cv@@QEAAXXZ) 中被引用
main.obj👎 error: LNK2019: 无法解析的外部符号 “class cv::Mat __cdecl cv::imread(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,int)” (?imread@cv@@YA?AVMat@1@AEBV?
b
a
s
i
c
s
t
r
i
n
g
@
D
U
?
basic_string@DU?
basicstring@DU?char_traits@D@std@@V?KaTeX parse error: Expected group after '_' at position 88: …法解析的外部符号 "void _̲_cdecl cv::imsh…basic_string@DU?
c
h
a
r
t
r
a
i
t
s
@
D
@
s
t
d
@
@
V
?
char_traits@D@std@@V?
chartraits@D@std@@V?allocator@D@2@@std@@AEBV_InputArray@debug_build_guard@1@@Z),该符号在函数 main 中被引用
debug\untitled1.exe👎 error: LNK1120: 4 个无法解析的外部命令
解决方法——
添加语句:
#pragma comment( lib, “opencv_world440d.lib”)即可。
完整代码:
#include "mainwindow.h"
#include “QApplication”
#include "opencv2/opencv.hpp"
#pragma comment( lib, "opencv_world440d.lib")
using namespace cv;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Mat img = imread("1.jpg");
imshow("out",img);
return a.exec();
}
ps——
QT creator 5.9.1(MSVC2015 64bit)+OpenCV4.4.0(VC14)
.PRO文件添加如下语句:
INCLUDEPATH += D:/OPENCV/4.4.0/opencv/build/include
LIBS += -LD:/OPENCV/4.4.0/opencv/build/x64/vc14/lib
opencv_world440d.lib