J'essaie de compiler une application sur Debian 11, mais j'ai un problème lors de l'édition des liens : gcc ne parvient pas à trouver les bibliothèques partagées (par exemple libsqlite3.so.0). Pour illustrer mon problème, cet exemple de programme avec son Makefile
Code : Tout sélectionner
/* foo.c */
#include <sqlite3.h>
#include <stdio.h>
int main(void) {
printf("%s\n", sqlite3_libversion());
return 0;
}
Code : Tout sélectionner
CFLAGS = -I/usr/include -Wall
LDFLAGS = -lsqlite3 -L/usr/lib/x86_64-linux-gnu -L/usr/lib
all:
gcc $(CFLAGS) $(LDFLAGS) foo.c -o foo
Code : Tout sélectionner
valter@debian:~# make
gcc -I/usr/include -Wall -lsqlite3 -L/usr/lib/x86_64-linux-gnu -L/usr/lib foo.c -o foo
/usr/bin/ld : /tmp/cc0yzZNg.o : dans la fonction « main » :
foo.c:(.text+0x5) : référence indéfinie vers « sqlite3_libversion »
collect2: error: ld returned 1 exit status
make: *** [Makefile:5 : all] Erreur 1
Code : Tout sélectionner
valter@debian:~# nm -gD /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 | grep sqlite3_libversion
00000000000132d0 T sqlite3_libversion
00000000000132e0 T sqlite3_libversion_number
Toute aide sera appréciée.
Cordialement