IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Problème de compilation avec librairie


Sujet :

Linux

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut Problème de compilation avec librairie
    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

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Voir la réponse à ce post

  3. #3
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    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?

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    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

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    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

  6. #6
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    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.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    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?

  8. #8
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    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?

  9. #9
    Expert éminent
    Avatar de Michaël
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2003
    Messages
    3 497
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2003
    Messages : 3 497
    Points : 8 239
    Points
    8 239
    Par défaut
    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

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut
    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

  11. #11
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    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.

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Points : 47
    Points
    47
    Par défaut [resolu]
    J'ai enfin reussi a compiler et a executer...
    Grand merci !

Discussions similaires

  1. compilation avec librairie statique
    Par hector2 dans le forum Fortran
    Réponses: 4
    Dernier message: 04/05/2010, 11h39
  2. [Makefile] Compilation avec librairie Mysql
    Par lexase dans le forum Systèmes de compilation
    Réponses: 8
    Dernier message: 09/02/2007, 18h42
  3. [Makefile] Compilation avec librairie ncurses
    Par Kerod dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 13/01/2007, 01h52
  4. Compilation avec librairie externe
    Par sniper91 dans le forum NetBeans
    Réponses: 5
    Dernier message: 02/08/2006, 11h24
  5. [Maven] Compilation avec des librairies
    Par pamic dans le forum Maven
    Réponses: 3
    Dernier message: 03/07/2006, 11h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo