我想使用SQLite3来编译一个小小的C程序。我已经包含Header-File并将.dll文件转换为.lib文件。GCC编译错误:/ usr/bin/ld:找不到-lsqlite3.lib
有趣的是,在Windows上,gcc(CodeBlocks)可以毫无问题地编译源代码。但Debian的(树莓派)在我收到此错误信息:在/ usr /斌/劳工处:找不到-lsqlite3.lib
的sqlite3.lib文件是在同一文件夹中的main.c文件我想编译。 (我也曾尝试复制的.lib文件到/ usr/bin中/ - 没有成功)
如果我尝试在我的覆盆子运行Windows编译的程序,我得到另一个错误信息......
这里是我的源代码:
#include <stdio.h>
#include <stdlib.h>
#include "sqlite3.h"
static int callback(void *NotUsed, int argc, char **argv, char **azColName);
int main(void){
sqlite3 *db=NULL;
int erg = 0;
char *errMsg = NULL;
erg = sqlite3_open("temp_values.db", &db);
if (erg == 1){
fprintf(stderr, "Fehler beim Oeffnen der DB!\n");
sqlite3_close(db);
return EXIT_FAILURE;
}
else fprintf(stdout, "Database connection successful!\n");
erg = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS temp_values (username TEXT, port TEXT, degrees INTEGER, humidity INTEGER, PRIMARY KEY(username, port));", callback, 0, &errMsg);
if (erg){
fprintf(stderr, "SQL error: %s\n", errMsg);
}
else fprintf(stdout, "Table check successful!\n");
erg = sqlite3_exec(db, "INSERT INTO temp_values (username, port, degrees, humidity) VALUES ('root', '4', 24, 35);", callback, 0, &errMsg);
if (erg){
fprintf(stderr, "SQL error: %s\n", errMsg);
}
else fprintf(stdout, "Inserted tuple successful!\n");
sqlite3_close(db);
return EXIT_SUCCESS;
}
static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for (i = 0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
我希望有人能帮助我...
待办事项你有安装sqlite-devel软件包?在CentOS上,它叫做sqlite-devel.x86_64 –
如果错误确实是'/ usr/bin/ld:找不到-lsqlite3.lib'我怀疑你的makefile有问题(linux静态库有一个.a扩展名) – fvu
请将你的建立配方,makefile或其他任何东西,在这个问题中,请不要发表评论 –