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

时间:2011-12-11 21:10:30

标签: c++ qt opencv static-libraries qmake

我目前正在尝试使用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是lib的名称部分,它不是扩展名)..我知道.a库是特定于linux的,但是mingw能够正确使用它们吗?

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

任何帮助表示赞赏! 日Thnx!

1 个答案:

答案 0 :(得分:0)

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