在VS2010上使用SQLite3构建问题

时间:2017-01-05 13:58:23

标签: visual-studio-2010 sqlite

我尝试使用VS2010从源代码构建SQLite v3并遇到我不知道如何处理的问题。

这就是我所拥有的: VS2010亲。 使用sqlite-amalgamation-3160100.zip Microsoft文章:SQLite databases

这就是我所做的:

  1. 创建了一个C ++'Win32控制台应用程序'。
  2. 已禁用预编译标题。
  3. 添加了预处理器定义:(不要这样做,这就是问题!) _HAVE_SQLITE_CONFIG_H; SQLITE_OS_WINRT; SQLITE_API = __ declspec(DLLEXPORT); (由'SQLite数据库'第3节指定。)
  4. 创建了config.h(暂时为空。)
  5. 在项目中包含sqlite-amalgamation-3160100.zip的源文件。
  6. 构建
  7. 我收到许多编译错误

    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);。留下这两个定义解决了这个问题。

    显然我误解了微软文章中的建议。

    编译时间问题解决了。

    亲切的问候。

1 个答案:

答案 0 :(得分:0)

您是否已经构建了sqlite3.dll文件?如果是这样,只需在visual studio文件夹中创建一个文件夹。当你想使用sqlite3时,只需将dll文件复制到visual studio中的项目文件夹中你想使用它还要复制下面的文件sqlit3.c,sqlite3.h。完成此操作后,在Visual Studio IDE中打开项目。右键单击项目名称,添加,添加现有,然后单击sqlite3.h和sqlite3.c。让我知道它是怎么回事。