c - 无法使用 Visual Studio 2015 编译或运行 sqlite3

标签 c visual-studio visual-studio-2015 sqlite

我正在尝试使用 Visual Studio 2015 编译从 SQLite 网站下载的 sqlite3.c 和 shell.c 的源代码。我创建了 DLL 项目 sqlite3 并将 sqlite3.c 源代码放入其中。然后我创建了项目 sqlite3shell 并将 shell.c 源放入其中。我在两者中添加了 include "stdafx.h" 。当我编译这两个项目时,DLL没有生成.lib文件,因此sqlite3shell的编译出现错误LNK1104无法打开sqlite3.lib

我使用 this solution 手动创建了一个 .lib 文件。然后sqlite3shell程序编译成功。但是当我去运行该程序时,我收到错误应用程序无法正确启动(0xc000007b)。调查此错误似乎是由于尝试访问 64来自 32 位程序的 - 位程序。但一切都是使用 x86 配置创建的。

是否有某种方法可以让 DLL 编译生成正确的 .lib 文件?或者,如果这不能解决问题,我可以采取措施来防止 0xc000007b 错误吗?

最佳答案

如果其他人遇到这个问题,我已经找到了解决方案。有 2 行指定了 SQLITE_API 的定义。我将导出添加到定义中,如下所示:#define SQLITE_API __declspec(dllexport)。显然没有导出,因此这就是从未创建 .lib 文件的原因。通过更改,创建了 .lib 和 .exp 文件,然后程序没有收到 0c000007b 错误。

关于c - 无法使用 Visual Studio 2015 编译或运行 sqlite3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43766297/

相关文章:

c# - "This expression causes side effects and will not be evaluated"。如何压制?

Visual Studio 2013 中的 Eclipse 快捷方式

visual-studio-2015 - 动态编译在 ASP.NET 5 RC1 中仍然不起作用?

asp.net - 在 Visual Studio 中保存一些 javascript 文件后自动运行 gulp 任务

c - 类型转换 sockaddr 结构

mysql - MS SQL 数据库管理/IDE

C - 附加到字符串 - 可能的内存错误

带有子项的 ReactJS TypeScript 纯组件

c - 如何使用shell脚本关闭文件

c++ - VS Intellisense 显示某些(不是全部)字节常量的转义字符