我试图将64位DLL用于SQLite,但没有成功。我可以使用相同的配置成功使用32位版本。为什么会有区别?
我在Visual Studio 2008 / VC ++中创建了一个x64项目。
我已经从here.
下载了x64 sqlite二进制文件我从同一站点的合并源代码中获取了sqlite3.h,并将其添加到项目中的Header Files中。
在我的VS项目中,我已将sqlite目录添加到Linker-> General->其他库目录。 我把sqlite3.lib放在Linker-> Input-> Additional Dependencies。
我写了一些非常基本的sqlite代码来确保这一切都有效:
#include "stdafx.h"
#include "sqlite3.h"
int _tmain(int argc, _TCHAR* argv[])
{
sqlite3 *dbfile;
sqlite3_close(dbfile);
return 0;
}
编译时,链接器会抱怨:
error LNK2001: unresolved external symbol sqlite3_close
我还将链接器输出设置为/ verbose以查看:
Searching C:\sqlite-dll-win64-x64-3130000\sqlite3.lib:
我在这里缺少什么?有什么明显的吗?帮助!
P.S。作为一个完整性检查,我已经为使用x86二进制文件的Win32 VS应用程序完成了上述所有步骤,在这种情况下我没有链接器错误。我明白这一点:
1> Searching C:\sqlite-dll-win32-x86-3130000\sqlite3.lib:
1> Found _sqlite3_close
1> Referenced in MyProject.obj
1> Loaded sqlite3.lib(sqlite3.dll)