使用mingw链接静态库(a)到exe

Link static libs (.a) into exe with mingw

本文关键字:exe mingw 链接 静态 使用      更新时间:2023-10-16

我目前正在尝试使用OpenCV,但我遇到了一点麻烦。我使用qt ide和mingw来编译我的应用程序。

我的代码是这样的:

#include “highgui.h”
int main( int argc, char** argv ) 
{
    IplImage* img1 = cvLoadImage( argv[1] );
    cvNamedWindow( “Example”, CV_WINDOW_AUTOSIZE );
    cvShowImage( “Example”, img1 );
    cvWaitKey(0);
    cvReleaseImage( &img1 );
    cvDestroyWindow( “Example” );
    return(0);
}

在我的。pro文件中:

INCLUDEPATH += "E:/OpenCV2MinGWBuild/install/include/"
INCLUDEPATH += "E:/OpenCV2MinGWBuild/install/include/opencv/"
INCLUDEPATH += "E:/OpenCV2MinGWBuild/install/include/opencv2/"
LIBS += -L"E:/OpenCV2MinGWBuild/install/lib/" -lopencv_calib3d231.dll -lopencv_contrib231.dll -lopencv_core231.dll

库是.a-s(dll在库的名称部分,它不是扩展名)。我知道。a库是linux特有的,但是mingw应该能够使用它们,对吗?

我用mingw构建了OpenCV库,但我不能让它们链接到我的Qt应用程序。MinGW可以很好地看到头文件,但看不到库。我总是得到"对cvShowImage'", "undefined reference to cvNamedWindow'的未定义引用"(等)错误…

任何帮助都是感激的!非常感谢!

dll。a不是静态库文件,它们是动态链接.dll的存根-您需要重新构建OpenCv以使用静态库.lib并将其直接链接到您的代码