我正在尝试将一个库链接到我的项目,但继续这样做:
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 添加到项目中(没有预编译的头文件或任何东西)。