2017-05-03 40 views
0

我想编译sqlite3.c和shell.c的源代码我使用Visual Studio 2015从SQLite网站下载。我创建了DLL项目sqlite3并放入了sqlite3。 c源代码。然后我创建了项目sqlite3shell并将shell.c的源代码放入其中。我加入了include "stdafx.h"。当我编译这两个项目时,DLL没有生成一个.lib文件,所以sqlite3shell的编译得到了错误LNK1104 cannot open sqlite3.lib无法使用Visual Studio 2015编译或运行sqlite3

我使用this solution手动创建了一个.lib文件。然后sqlite3shell程序编译成功。但是当我去运行程序,我得到了错误The application was unable to start correctly (0xc000007b).看着这个错误似乎是它可能导致的一个原因是试图从32位程序访问一个64位程序。但一切都是使用x86配置创建的。

有没有办法让DLL编译生成正确的.lib文件?或者,如果这不能解决问题,有什么我可以做,以防止0xc000007b错误?

回答

0

如果别人有这个问题,我找到了解决办法。有2行指定了SQLITE_API的定义。我将这个输出添加到如下定义:# define SQLITE_API __declspec(dllexport)。显然没有导出,所以这就是为什么.lib文件从未被创建。随着更改,.lib和.exp文件被创建,然后程序没有得到0c000007b错误。

相关问题