连接在QtCreator

问题描述:

一个dll未定义引用错误

我已经建立了使用G ++一个简单的DLL下的MinGW: 我们已经包含文件:连接在QtCreator

#ifndef __TESTDLL_H 
#define __TESTDLL_H 

class sineCalculator 
{ 
    double n; 
public: 
    sineCalculator(); 
    sineCalculator(double); 
    double sine(); 
    void setAngle(double); 
}; 

#endif 

然后实现CPP:

#include <testdll.h> 
#include <math.h> 

sineCalculator::sineCalculator() 
{ 
    n = 0; 
} 

sineCalculator::sineCalculator(double x) 
{ 
    n = x; 
} 

double sineCalculator::sine() 
{ 
    return sin(n); 
} 

void sineCalculator::setAngle(double x) 
{ 
    n = x; 
} 

这是我编译为dll.producing既是一个.dll文件,并.A导入库的名称visaTest.dll和libvisaTest.a

我可以写一个小程序,并链接到这个dll成功地使用命令行 - 没有Qt只是g ++。我可以创建对象并运行所有方法。

但是,我现在想将这个库添加到QtCreator中的Qt应用程序。我遵循的几个问题的建议,并添加这些行到我的.pro文件:

INCLUDEPATH += C:/msys64/home/hoyla/libs/ 
INCLUDEPATH +=C:/msys64/home/hoyla/includes/ 
DEPENDPATH +=C:/msys64/home/hoyla/libs/ 

win32:CONFIG(release, debug|release): LIBS += -LC:/msys64/home/hoyla/libs/ -lvisaTest 
else:win32:CONFIG(debug, debug|release): LIBS += -LC:/msys64/home/hoyla/libs/ -lvisaTest 
else:unix: LIBS += -L$$PWD/../../../../libs/ -lvisaTest 

虽然我在这里使用了一些绝对路径我也试图与相对路径。但是,在构建Qt文件时,我不断收到未定义的参考错误。我会指出路径指向我的.a导入库的位置,.dll本身在系统路径中。我在这里做错了什么?

Mea Culpa!似乎我已经在64位MinGW下编译了我的库,但Qt Creator默认为32位工具链。人们会认为链接器可能已经能够确定这是错误,并生成更有用的错误消息,但我们现在就去。获得的教训 - 确保您使用的是您认为正在使用的工具。