LNK2019错误(未解析的外部符号)将SQLite链接到DLL

LNK2019 error (unresolved external symbol) linking SQLite into DLL

我正在制作一个需要 SQLite 的 C++ DLL。

我已经集成了SQLite头文件(sqlite3.h)并在外部依赖中添加了库。我没有语法错误,但是当我尝试编译项目时,出现以下 LNK2019(“函数引用的未解析外部符号 [XYZ]”)错误:

error LNK2019: symbole externe non résolu sqlite3_close référencé dans la fonction "void __cdecl DisonnectDB(bool,struct sqlite3 *)" (?DisonnectDB@@YAX_NPEAUsqlite3@@@Z) C:\Users\Akash\Downloads\Learn Curve\Freelance\Travis\sana\Sana\Sana.obj Sana

error LNK2019: symbole externe non résolu sqlite3_column_text référencé dans la fonction "wchar_t const * __cdecl getTableData(struct sqlite3 *)" (?getTableData@@YAPEB_WPEAUsqlite3@@@Z) C:\Users\Akash\Downloads\Learn Curve\Freelance\Travis\sana\Sana\Sana.obj Sana

我已尝试在测试控制台应用程序中执行相同的过程,并且能够无错误地进行编译,因此我相信问题不在于 SQLite 库或头文件的可见性。

Stack Overflow 上的其他问题并不特定于 DLL 如何与静态库交互。

与在控制台应用程序中使用相比,在 DLL 中使用 SQLite 库是否需要任何其他配置?
如何修复编译时 LNK2019 错误?

经过大量测试,我终于找到了问题的根源。 LNK2019 错误可能是由与编译 dll 具有不同体系结构的静态库引起的。

我在 x64 中编译 dll,而 sqlite .lib 文件是 x86。

使用正确的架构编译后,我不再有链接器错误。