LNK2019使用Qt链接到外部库时出错

时间:2013-07-25 09:55:07

标签: c++ qt dll

我正在尝试将库链接到我的项目,但继续这样做:

LNK2019:函数main中引用的未解析的外部符号__imp_GetLibraryVersion

我的.pro文件如下所示:

TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

unix|win32: LIBS += -L$$PWD../../Libs/ -ldrivers

INCLUDEPATH += $$PWD/../../Headers

我有一个如下所示的源文件:

#include "drivers.h"

void main()
{
   GetLibraryVersion();
}

这显然只是一个测试项目。 lib位于Libs目录中,头文件位于Headers目录中。

有问题的头文件看起来像这样,但有许多其他功能:

#ifdef _WIN32
  #ifndef DLL
    #define DLL _declspec(dllimport)
  #endif
#else
  #define DLL
  #define __stdcall
#endif

#ifdef __cplusplus
extern C
{
#else
#typedef int bool
#endif

DLL char *  __stdcall GetLibraryVersion(void);

...

#ifdef __cplusplus
}
#endif

我在Windows 7 x64上使用Qt 5.1.0和msvc2012编译器,项目编译为64位。

奇怪的是,通过添加main作为入口点并将库drivers.lib添加到项目中(没有预编译的头文件或任何东西),它与Visual Studio 2012完美地结合使用相同的源文件。

1 个答案:

答案 0 :(得分:2)

dll是32位,我的项目是64位。刚刚将我的项目设置更改为32位,就可以了。