【发布时间】:2016-06-02 14:02:09
【问题描述】:
我正在尝试使用 sqlite 和 Visual Studio 制作程序。我已将sqlite3.def, sqlite3.c, sqlite3.h, sqlite3.dll 文件添加到项目目录中。我还在项目设置中将THREADSAFE 和SQLITE_ENABLE_COLUMN_METADATA 添加到预处理器定义和Linker -> Input -> Module definition file 中的sqlite3.def。我正在尝试编译以下程序
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
int main(int argc, char **argv)
{
sqlite3* db;
char* zErr;
int rc;
char* sql;
rc = sqlite3_open("test.db", &db);
if (rc)
{
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
sql = "create table episodes( id integer primary key,"
" name text, cid int)";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
if (rc != SQLITE_OK)
{
if (zErr != NULL)
{
fprintf(stderr, "SQL error: %s\n", zErr);
sqlite3_free(zErr);
}
}
sql = "insert into episodes (name,id) values ('Cinnamon Babka2',1)";
rc = sqlite3_exec(db, sql, NULL, NULL, &zErr);
if (rc != SQLITE_OK)
{
if (zErr != NULL)
{
fprintf(stderr, "SQL error: %s\n", zErr);
sqlite3_free(zErr);
}
}
sqlite3_close(db);
return 0;
}
我得到了一大堆错误,以下是其中的一些:
LNK2001 unresolved external symbol sqlite3_aggregate_context
LNK2001 unresolved external symbol sqlite3_backup_finish
LNK2001 unresolved external symbol sqlite3_backup_pagecount
我的问题是如何解决这个问题?谢谢!
【问题讨论】:
-
C 不是 C++ si 不是 C!不要为不相关的语言添加标签。这看起来像 C,但如果您使用 C++ 编译器进行编译,更改标签为 C++。
标签: c visual-studio sqlite visual-studio-2015