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

Shell et commandes GNU Discussion :

[autotools] Ajout de sqlite3


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut [autotools] Ajout de sqlite3
    Bonjour,

    je construit un projet qui utilise une bibliothèque externe.
    Je ne sais pas comment ajouter celle ci pour qu'elle soit prise en compte lors du make...
    j'ai essayé les macro suivante dans le Makefile.am :
    LDADD, LIBADD mais rien n'y fait...
    J'ai la même erreur que si je compile directement mais sans le " -lsqlite3 "
    c'est à dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    g++ -g -O2 -o .libs/QtNem main.o  NemData/.libs/libnemdata.so DataConnect/.libs/libdataconnect.so Definitions/.libs/libdefinitions.so
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_close'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_open'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_errmsg'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_get_table'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_free_table'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_free'
    DataConnect/.libs/libdataconnect.so: undefined reference to `sqlite3_exec'
    Comment ajouter une bibliothèque externe au processus autotools ??

    D'avance merci

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    Citation Envoyé par LeGars
    Bonjour,

    J'ai la même erreur que si je compile directement mais sans le " -lsqlite3 "

    D'avance merci
    donc ton probleme est un probleme de codage qui appelle en dur sqllite
    commences par empecher cela..
    apres tu pourras voir a (re)tester les autres erreurs. au fur et a meusure.

  3. #3
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    Comment faire pour utiliser sqlite alors ?
    Ce que je fais :

    Dans le fichier entête qui crée ma connection :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <sqlite3.h>
    ...
    // par exemple pour fermer une base : 
    void CloseDB()
    {
       sqlite3_close(db);
    }
    pour compiler (sans erreur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++ main.cpp -lsqlite3
    Je ne vois pas comment faire autrement ...

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    c'est toi pourtant qui dit je cide :
    J'ai la même erreur que si je compile directement mais sans le " -lsqlite3 "
    alors ... j'ai pas du comprendre ta question ....

    ?

    tu veux voir pourquoi ton code remonte une erreur avec ou sans usage de sqlite non ?

  5. #5
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    J'ai dû mal exprimer mon problème...
    Mon code compile bien, je n'ai aucune erreur.
    Pour cela j'utilise une longue ligne de commande type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++ libs/connection.cpp libs/datalayer.cpp tools/convert.cpp truc/biblio.o [...] -lsqlite3 -o application
    C'est bien, mais pas pratique.
    Je voudrais pouvoir lancer la série magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ./configure
    make
    make install
    application
    Pour cela je regarde du coté des autotools.
    Ca crée les fichiers qui vont bien à partir de fichiers de pré-configuration dans lesquels je renseigne les fichiers à compiler et où les trouver.
    Comme j'utilise sqlite3, j'aimerais que lors de la compilation des fichiers utilisant cette bibliothèque, l'option "-lsqlite3" soit ajoutée.
    Car pour le moment, l'option n'est pas ajoutée et j'ai l'erreur cité.

    Je viens de relire le premier post, et effectivement, je n'étais pas très clair... désolé...

    Et maintenant est ce plus clair ?

  6. #6
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    ah il doit falloir ecrire un makefile alors je suppose....et surtout un script configure mais la ca depasse mes competances.

  7. #7
    Membre expérimenté

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Par défaut
    J'ai trouvé : il faut ajouter la commande complète !
    Ce que je faisais dans mon Makefile.am :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    libdataconnect_la_LDFLAGS = sqlite3
    Ce qu'il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    libdataconnect_la_LDFLAGS = -lsqlite3
    le a son importance !

    Merci pour les pistes.
    Pour info, j'ai essayé rapidement le lien par julp, mais ça n'as pas fonctionné directement, Mais ça reste une piste plus qu'interessante pour savoir si une bibliothèque est présente ou non...

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    On peut aussi ajouter la directive dans configure.in ou configure.ac.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AC_CHECK_LIB(sqlite3, refresh, , AC_MSG_ERROR([Couldn't find sqlite3 library.]), -lsqlite3)

    Puis lancer la commande :
    autoreconf
    (qui execute aclocal, autoheader, autoconf,automake)

    L'avantage de cette méthode est que la bibilothèque est recherchée dans la commande configure et renvoie une erreur si elle n'est pas trouvée.

    Un peu de doc : http://www.infres.enst.fr/~dax/polys...re/slide1.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] SQLite3 et ajout d'enregistrements
    Par Philippe_2010 dans le forum Lazarus
    Réponses: 1
    Dernier message: 18/12/2010, 17h39
  2. ajout d'un pthread dans autotool
    Par ikuzar dans le forum Débuter
    Réponses: 1
    Dernier message: 14/08/2009, 03h32
  3. [système] Comment ajouter un item dans le context menu de Windows ?
    Par ddmicrolog dans le forum API, COM et SDKs
    Réponses: 8
    Dernier message: 29/06/2005, 17h03
  4. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48
  5. Ajouter une aide
    Par Mailgifson dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/06/2002, 13h32

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