c – 将SQLite链接到DLL中的LNK2019错误(未解析的外部符号)
作者:互联网
我正在制作一个需要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.
使用正确的体系结构进行编译后,我不再有链接器错误.
标签:c,sqlite,dll,linker-errors 来源: https://codeday.me/bug/20190830/1765176.html