我正在尝试将库链接到我的项目,但继续这样做:
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完美地结合使用相同的源文件。
答案 0 :(得分:2)
dll是32位,我的项目是64位。刚刚将我的项目设置更改为32位,就可以了。