Linker un programme

Résolu
Bonjour,

Je veux compiler et linker un programme. La compilation se passe bien, mais le link pas du tout; il sort un tas d'undefined reference concernant des manipulations de String. Quelle librairie dois-je spécifier en input (sur la ligne de commande ) pour éliminer ces erreurs?
Merci d'avance

7 réponses

  1. Modérateur
    Peux-tu nous reporter le message d'erreur exact (ainsi que les headers utilisés dans le(s) fichier(s) faisant appel à la fonction ntas ?

    Supposons que ntas soit founie par la librairie libtoto.so, alors la ligne de compilation pour linker sera du genre :

    gcc -W -Wall main.c -o programme -ltoto

    Bonne chance
    1. En fait, le programme principal inlut <exception> et <iostream>.
      Ce programme fait appel à ine librairie composée d'un seul module et celui-ci inclut string.h.
      la compilation se passe bien pour les 2 entités, la librairie et le module. C'est au moment du link (ld) que celui-ci sort des erreurs telles aue : undefined reference to 'std::basic_string<char, std::char_traits<char>, std:allocator<char> >::assign(char const *)
      Il semble qu'il me manque une librairie en input du linker. Mais laquelle?

      Merci d'avance
      1. Modérateur
        Peux-tu nous donner un exemple minimal de code provoquant cette erreur (idéalement le code source de ton programme et un makefile que tu peux mettre en partage sur un site quelconque) et nous indiquer quelle version de g++ tu utilises.

        dpkg -l | egrep '(c|g)\+\+'

        Essaye aussi de voir si une mise à jour ne résout pas le problème.

        Bonne chance
        1. Bonjour,

          Désolé de répondre si tardivement (vacances). J'ai trouvé, il s'agissait d'une erreur de ma part.
          Merci pour vos recherches et vos efforts

          Bonne journée