Ich versuche, ein kleines C-Programm mit SQLite3 zu kompilieren. Ich habe die Header-Datei bereits eingefügt und die .dll-Datei in eine .lib-Datei konvertiert.GCC-Kompilierfehler:/usr/bin/ld: kann -lsqlite3.lib nicht finden
Das Interessante ist, dass gcc (CodeBlocks) unter Windows den Quellcode problemlos kompilieren kann. Aber unter Debian (Raspberry Pi) Ich bekomme diese Fehlermeldung: /usr/bin/ld: nicht -lsqlite3.lib
Die sqlite3.lib Datei im selben Ordner wie die main.c Datei finden Ich möchte kompilieren. (Ich habe auch versucht, die LIB-Datei zu kopieren, zu/usr/bin/- kein Erfolg)
Und wenn ich versuche, die windows-kompilierte Programm auf meinem Himbeere laufen, erhalte ich eine andere Fehlermeldung ...
Hier ist meine Quellcode:
#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;
}
ich hoffe jemand kann mir helfen ...
Do Sie haben die sqlite-devel-Pakete installiert? Auf CentOS heißt es sqlite-devel.x86_64 –
Wenn der Fehler wirklich '/ usr/bin/ld: -lsqlite3.lib nicht finden kann, vermute ich Probleme in Ihrem Makefile (linux static libs haben eine .a Erweiterung. – fvu
Bitte posten Sie Ihre build rezept, makefile oder was auch immer. In der Frage, nicht die Kommentare, bitte. –