Bonjour,
j'aimerais en fait compiler un petit programme(test) C. Il a besoin d'une librairie (SQLite) mais je n'y arrive pas.
Voici la commande :
gcc -o essai -lsqlite3.la essai.c
Bonjour,
j'aimerais en fait compiler un petit programme(test) C. Il a besoin d'une librairie (SQLite) mais je n'y arrive pas.
Voici la commande :
gcc -o essai -lsqlite3.la essai.c
Voir la réponse à ce post
Une question bete, mais il faudrait pas rajouter le dossier des librairies dans le PATH? sa serait pas plus pratique?
Ou bien je me dit une anerie?![]()
mmm mais si la librairie est dans le dossier courant?
J'ai donc
gcc -o essai -llibsqlite3.la -L. essai.c
C'est bien ca? Pourtant il ne trouve toujours pas la librairie.
/usr/bin/ld: cannot find -llibsqlite3.la
collect2: ld returned 1 exit status
Oui ca serait une idee.
Mais je ne sais pas si je peux modifier le PATH... je suis un simple utilisateur. Ce n'est pas sur mon pc mais sur un serveur
Ajouter la bibliothèque au chemin de recherche de l'éditeur de lien est une solution, mais elle 'cache' un peu la solution plus flexible.
Sinon, mrttlemonde, tu remarqueras que l'option -l ne prend pas le nom de la bibliothèque en entier. C'est uniquement la portion après le lib initial, et sans l'extension.
Donc tu dois faire -lsqlite3. Remarque que le .la n'est pas la bibliothèque elle-même, mais un fichier utilisé par libtools. Tu dois certainement avoir un libsqlite3.a ou .so.
Oui je me disais aussi que c'etait un peu bizarre mais je n'ai rien trouve d'autre. Je n'ai aucun .a ni .so apres avoir lance mon 'make'.
Faudrait-il modifier le makefile? Je ne m'y risque pas mais c'est peut etre la dedans qu'il faudrait regarder non?
Si la librairie est manquante... j'ai lu qu'il est possible de la cree sois meme avec la commande ar mais je ne sais pas si les options sont les memes sous linux.
ar cr libsqlite.a *.o
ranlib libsqlite.a
je l'ai trouve ici :
http://www.sqlite.org/cvstrac/wiki?p=HowToCompile
J'essaie?
sans regarder ce qu'il y a dans le lien, il semble que ce soit la doc officielle.
essaie, c'est la meilleure façon de savoir![]()
c'etait trop beau.
J'ai bien cree libsqlite.a mais je n'arrive toujours pas a compiler. C'est la meme erreur, il ne trouve pas la librairie avec
gcc -o essai -llibsqlite -L. essai.c
Si tu possèdes libsqlite.a, l'option à donner à gcc est -lsqlite. Au risque de me répéter, le 'lib' initial est ajouté par gcc (enfin, ld).
Edit: remarque également que l'ordre des paramètres peut être important:
je conseille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 gcc -W -Wall essai.c -o essai -lsqlite -L.
J'ai enfin reussi a compiler et a executer...
Grand merci !![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager