作者:雨天是最美 | 来源:互联网 | 2023-05-18 02:14
我正在制作一个需要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错误?
1> Bjr. Jean..:
经过广泛的测试,我终于找到了这个问题的共鸣.LNK2019错误可能是由静态库引起的,该库与编译dll的架构不同.
我在x64中编译dll,而sqlite .lib文件是x86.
使用正确的体系结构进行编译后,我不再有链接器错误.