2

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

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 上使用带有 msvc2012 编译器的 Qt 5.1.0,并且该项目被编译为 64 位。

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

4

1 回答 1

2

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

于 2013-08-12T14:26:31.940 回答