Ciao a tutti
mi sto approcciando all'uso di C e sqlite, ma ho già dei problemi.
Come prima operazione volevo provare solo ad aprire una connessione con un database sqlite e poi chiuderlo. il programma è questo

codice:
#include <stdio.h>
#include <sqlite3.h>
	 
//using namespace std;
	 
	 
int main()
{
sqlite3* conn;
int i,c,sel,id;
char app[20]="impegno";
char delete[80];
char read[25]="SELECT * FROM Agenda";
char insert[130];
double created; 


if (sqlite3_open("prova.db", &conn) == SQLITE_OK)
{
   printf("Database aperto correttamente \n");
} else {
   printf("Errore durante l'apertura \n");
}

created=234567.542;

printf("Quale operazione vuoi eseguire? \n");
printf("1-Inserisci nuovi impegni \n");
printf("2-Leggi gli impegni \n");
printf("3-Cancella impegni \n");

scanf("%d",&sel);

//esecuzione delle query
if(sel==1)
{
c=sprintf(insert,"INSERT INTO Agenda Values( %d,%s,%f,1,3)",id,app,created);
printf("%s \n",insert);
}
else if(sel==2)
printf("%s",read);
else
{
scanf("%d",&i);
c=sprintf(delete,"DELETE FROM Agenda Where id = %d",i);
printf("%s",delete);
}
sqlite3_close(conn);
	}
Le query che dovrò eseguire potete anche non guardarle tanto per ora sono ininfluenti.
Sono andato a compilare il programma con il comando
gcc -o test provasql.c
e mi da come errore:

undefined reference to 'sqlite3_open()'
undefined reference to 'sqlite3_close'
collect2: Id returned 1 exit status

al chè ho pensato che forse dovevo linkare direttamente sqlite3.h quindi siccome è presente sia nella cartella in cui sto lavorando sia in /usr/include ho mandato in esecuzione in questo modo

gcc -o test prova.c -lsqlite3.h

ma mi da il seguente errore:
/usr/bin/ld: cannot find sqlite3.h
collect2: Id returned 1 exit status

se a -lsqlite3.h sostituisco tutto il percorso (/usr/include/sqlite3.h)
mi da lo stesso errore

sbaglio qualcosa nella compilazione??
oppure è sbagliato qualcosa nel codice??