MSVC2017 静态链接SQLite3



我有一个Microsoft Visual Code 2017控制台应用程序,我想静态链接到sqlite3。我已经链接了sqlite3.lib文件并包含了sqlite3.h文件。但是,当我执行程序时,它仍然弹出它丢失的消息sqlite3.dll.我以为 sqlite3 会静态链接,我做错了什么?

编译没有错误

这是我的代码:

#include "stdafx.h"
#include "sqlite3.h"
#pragma comment(lib, "sqlite3.lib")
static int callback(void *NotUsed, int argc, char **argv, char **azColName) {
int i;
for(i=0; i<argc; i++) {
printf("%s = %sn", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("n");
return 0;
}
int main(int argc, _TCHAR* argv[]) {
sqlite3 *db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if( rc ) {
fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_exec(db, "create table stuff ( name )", callback, 0, &zErrMsg);
rc = sqlite3_exec(db, "insert into stuff values ('hello')", callback, 0, &zErrMsg);
rc = sqlite3_exec(db, "select * from stuff", callback, 0, &zErrMsg);
if(rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %sn", zErrMsg);
sqlite3_free(zErrMsg);
}
sqlite3_close(db);
return 0;
}

您可以将sqlite3.c文件与其他.c.cpp文件一起包含。 这是整个事情的一个大文件。 然后它将静态链接,而不处理.lib.dll文件。

最新更新