如何从源代码编译SQLite时修复“在DLL sqlite3中找不到入口点sqlite3_open_v2”?

时间:2016-09-30 06:35:59

标签: c# .net c sqlite

我正在尝试从源代码(amalgamation)编译sqlite以从C#中使用它。自己编译它而不是使用预编译版本的原因是我需要JSON支持,默认情况下不包含它。这就是我编译它的方式:

cl sqlite3.c -DSQLITE_ENABLE_JSON1 -link -dll -out:sqlite3.dll

然后我尝试用我自己编译的版本替换我的应用程序中的预编译版本的sqlite3.dll,并且我的C#应用​​程序开始因为EntryPointNotFoundException而崩溃。

如何解决这个问题,以及编译SQLite的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

解决方案是导出API函数:

cl sqlite3.c -DSQLITE_API=__declspec(dllexport) -link -dll -out:sqlite3.dll