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

Debian Discussion :

Outil pour trouver le paquet correspondant à la bibliothèque idoine.


Sujet :

Debian

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut Outil pour trouver le paquet correspondant à la bibliothèque idoine.
    Bonjour tous. :-)

    Lors de premières compilations avec GCC/G++, tombe (presque) immanquablement le message «référence indéfinie vers» une méthode inconnue. Et là, on patauge, quelque fois longtemps, pour trouver le paquet correspondant à la bibliothèque idoine.

    Ma question est simple : existe-t-il un outil permettant de résoudre ce problème? Par exemple, le nom d'un paquet donné en fonction d'une méthode.

    Je n'ai pas grand espoir, puisque je ne rien trouvé sur Internet.

    Merci tout de même pour votre attention.

  2. #2
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Le paquet correspondant commence souvent par lib est se termine par -dev.
    Tu as apt-cache search suyivi d'une chaine pour les bases Debian.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Merci pour ta réponse.

    Il est vrai les noms des classes sont souvent proches des noms de fichiers. Mais, si je ne m'abuse, les fichiers «-dev» font référence aux fichiers d'en-têtes.
    Là où ça déraille, c'est au niveau du linker —ld pour moi—.
    En ce qui concerne «apt-cache», cet outil est limité au contenu de la description. Les noms des classes passent sous son radar. J'ai testé la manip à tout hasard.
    Bon, je crois que j'ai été trop gourmand. Je vais continué avec la méthode manuelle.

    En tout cas, merci encore et bonne soirée à tous.

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Peux-tu être plus explicite sur ton besoin:

    Tu pars de sources existantes que tu compiles toi même au lieu d'installer les versions compilées ?

    Ou tu développes toi-même tes sources que tu veux ensuite compiler ?

    Dans tous les cas, il n'y a pas de méthodes miracle, dans le premier cas, si bien ficelé, il y a au moins un Readme qui te dit les dépendances, dans le deuxième cas, c'est comme le principe du premier cas, on te dit les dépendances d'utilisation de la lib/framework.

    Sinon, pour aider tu as des outils comme ldd (sur une lib ou un binaire) qui te montre la dépendance des autres lib utilisées par celle/celui-ci, donc on peut être un cran au-dessus de la classe pour la recherche de dépendance mais tu n'auras pas spécifiquement le package à installer comme ça.
    Cordialement.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Bonsoir, voila un exemple trivial rencontré dernièrement :

    :-)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    2>&1 g++ search.cc support.cc | awk '$2 ~ /référence/'                                                                        
    search.cc:(.text+0x42)*: référence indéfinie vers «*Xapian::Database::Database(std::__cxx11::basic_string<char, std::char_traits<ch
    ar>, std::allocator<char> > const&, int)*»                                                                                        
    search.cc:(.text+0x51)*: référence indéfinie vers «*Xapian::QueryParser::QueryParser()*»
    search.cc:(.text+0x96)*: référence indéfinie vers «*Xapian::Stem::Stem(std::__cxx11::basic_string<char, std::char_traits<char>, std
    ::allocator<char> > const&)*»                                                                                                     
    search.cc:(.text+0xaf)*: référence indéfinie vers «*Xapian::QueryParser::set_stemmer(Xapian::Stem const&)*»
    …
    …
    …
    support.cc:(.text+0xf0)*: référence indéfinie vers «*Xapian::Utf8Iterator::Utf8Iterator(char const*)*»
    support.cc:(.text+0x129)*: référence indéfinie vers «*Xapian::Utf8Iterator::operator*() const*»
    support.cc:(.text+0x19f)*: référence indéfinie vers «*Xapian::Utf8Iterator::operator*() const*»
    support.cc:(.text._ZN6Xapian12Utf8IteratorppEv[_ZN6Xapian12Utf8IteratorppEv]+0x1f)*: référence indéfinie vers «*Xapian::Utf8Iterato
    r::calculate_sequence_length() const*»                                                                                            
    support.cc:(.text._ZN6Xapian7Unicode7to_utf8EjPc[_ZN6Xapian7Unicode7to_utf8EjPc]+0x34)*: référence indéfinie vers «*Xapian::Unicode
    ::nonascii_to_utf8(unsigned int, char*)*»                                                                                         
     
    :-) apt-cache search xapian | awk 'BEGIN {IGNORECASE=1} /^lib/' | sort | more
    libbalooxapian4 - fonctionnalité Xapian pour Baloo
    libept1.5.0 - Bibliothèque de haut niveau pour gérer les informations des paquets Debian
    libept-dev - High-level library for managing Debian package information
    libkf5akonadisearchxapian5 - bibliothèque de recherche Xapian pour Akonadi
    libnotmuch4 - thread-based email index, search and tagging (runtime)
    libnotmuch-dev - thread-based email index, search and tagging (development)
    libsearch-xapian-perl - liaison Perl pour la bibliothèque de recherche Xapian
    libxapian30 - bibliothèque de moteur de recherche
    libxapian30-dbg - symboles de débogage pour la bibliothèque du moteur de recherche Xapian
    libxapian-dev - fichiers de développement pour la bibliothèque du moteur de recherche Xapian
    libxapian-java-doc - interface du moteur de recherche Xapian pour Java –⋅documentatioon
    libxapian-java - interface du moteur de recherche Xapian pour Java
    libxapian-jni - interface du moteur de recherche Xapian pour Java –⋅bibliothèque JNI
     :-) apt-file list libxapian30 | more                                                                                              
    libxapian30: /usr/lib/x86_64-linux-gnu/libxapian.so.30
    libxapian30: /usr/lib/x86_64-linux-gnu/libxapian.so.30.3.0
    libxapian30: /usr/share/doc/libxapian30/TODO.Debian
    libxapian30: /usr/share/doc/libxapian30/changelog.Debian.gz
    libxapian30: /usr/share/doc/libxapian30/changelog.gz
    libxapian30: /usr/share/doc/libxapian30/copyright
    :-)

    En installant le paquet «libxapian30» on résout le problème. Mais je me demandais s'il existait un outil permettant de trouver directement le paquet idoine en tapant une commande du genre : commande_magique_qui_recherche_le_bon_paquet 'Xapian::Unicode::nonascii_to_utf8'

    Mais je suis peut être légèrement paresseux…

  6. #6
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 035
    Points : 2 053
    Points
    2 053
    Par défaut
    En installant le paquet «libxapian30» on résout le problème. Mais je me demandais s'il existait un outil permettant de trouver directement le paquet idoine en tapant une commande du genre : commande_magique_qui_recherche_le_bon_paquet 'Xapian::Unicode::nonascii_to_utf8'
    Non, ça n'existe pas mais il y-a toujours la possibilité de taper le message d'erreur dans un moteur de recherche.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 9
    Points
    9
    Par défaut
    Bon, je m'en doutais un peu…

    Merci tout de même pour vos réponses.

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

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