我尝试使用VS2010从源代码构建SQLite v3并遇到我不知道如何处理的问题。
这就是我所拥有的: VS2010亲。 使用sqlite-amalgamation-3160100.zip Microsoft文章:SQLite databases
这就是我所做的:
我收到许多编译错误
1> sqlite3.c
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38515): error C2065: 'MapViewOfFileFromApp' : undeclared identifier
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38515): error C2099: initializer is not a constant
1>e:\andre\ontwikkeling\sqlite\sqlite-amalgamation-3160100\sqlite3.c(38524): error C2065: 'CreateFile2' : undeclared identifier
....
...我试图解决。
第一个引导我剪切以下代码:
#if SQLITE_OS_WINRT && (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0)
{ "MapViewOfFileFromApp", (SYSCALL)MapViewOfFileFromApp, 0 },
#else
{ "MapViewOfFileFromApp", (SYSCALL)0, 0 },
#endif
现在'MapViewOfFileFromApp'导致MapViewOfFileFromApp function,'将文件映射到一个调用的Windows应用商店应用的地址空间。',一个有效的微软调用,我的项目设置缺少正确的配置
我可以为此解决方法,但其他错误仅取决于SQLITE_OS_WINRT,因此无法解决此问题。
看起来我缺少一些配置选项,但我不知道哪些配置选项。我阅读了所有记录的compile time options,但无法找出我做错了什么。
我试图找到一个VS2010解决方案的工作,但没有提出任何建议。因为我在这里检查了类似的问题! (如果有一个覆盖这个,那么我错过了,抱歉。)
有人对我遗失的内容有任何建议吗?我的想法已经用完了。
*编辑2017年1月*
根据MaxFurry的建议,我按照blog by David Cravey的步骤执行了与我相同的步骤,但没有声明SQLITE_OS_WINRT;SQLITE_API=__declspec(dllexport);
。留下这两个定义解决了这个问题。
显然我误解了微软文章中的建议。
编译时间问题解决了。
亲切的问候。
答案 0 :(得分:0)
您是否已经构建了sqlite3.dll文件?如果是这样,只需在visual studio文件夹中创建一个文件夹。当你想使用sqlite3时,只需将dll文件复制到visual studio中的项目文件夹中你想使用它还要复制下面的文件sqlit3.c,sqlite3.h。完成此操作后,在Visual Studio IDE中打开项目。右键单击项目名称,添加,添加现有,然后单击sqlite3.h和sqlite3.c。让我知道它是怎么回事。