QT creator 5.9.1+OpenCV4.4.0+error: LNK2019: 无法解析的外部符号——解决方法

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 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

你可能感兴趣的:(c++,qt,opencv)