2017-05-03 47 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錯誤。

相關問題