我有 2 个 C++ 项目,一个用于 Windows XP/Vista/7 (WinXP),另一个用于 Windows Mobile 6 (WinMo)。这两个项目使用相同的源代码。
我正在尝试链接到 sqlite3.lib。我使用 VS 自带的 lib 工具和 sqlite.def 文件生成了这个文件。我使用 Add -> Existing Item... 将此文件添加到两个项目的 Resource 文件夹中。我还在其他依赖项中添加了它(配置属性 > 链接器 > 输入)。我还将 sqlite3.dll 文件放在了工作目录和可执行目录中。
我写了一些代码,使用 sqlite3 的类有#include "sqlite3.h"。
现在,在 WinXP 项目中,我可以使用 sqlite3 API 编译、链接和执行数据库操作。在 WinMo 项目中,我可以编译,但我需要的 sqlite3 库中的所有函数都出现链接器错误:
1>Linking...
1>SQLiteDatabase.obj : error LNK2019: unresolved external symbol sqlite3_shutdown referenced in function "public: virtual __cdecl...
....
我做错了什么?
最佳答案
您需要 .lib 文件,而不是 .obj 文件。
您正在使用 .obj 文件,您从中获取了该文件
Visual Studio 2010\Projects\projectname\projectname\Release
需要从中获取同名的.lib文件
Visual Studio 2010\Projects\projectname\Release
这有意义吗?返回两个文件夹,然后进入 Release 文件夹。在该发布文件夹中将有 .lib 文件。
关于c++ - SQLite Visual Studio 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837784/