Retourner aux forums || Retourner au forum Programmation.c

Programmation.c : ltoa : n'a pas été déclaré dans cet horizon.

Posté par sdatcha () le 12 mai 2006
0
Bonjour,

Voilà je dois compiler un ensemble de programme C sous Linux (qui ont déjà été compilé sous HP-UX avec succès) mais lors de la compilation j'obtiens l'erreur suivante à chaque fois que j'utilise la fonction ltoa :
erreur: « ltoa » n'a pas ete declare dans cet horizon

Je ne trouve pas grand chose sur les forums.
Si quelqu'un peut m'aider.
Merci d'avance.

> Lire le message (10 commentaires, moyenne: 1,4).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

re

Posté par Gérald (page perso, ) le 12/05/2006 à 08:03. (lien). Évalué à 2.

Déja, un bon début serait de faire parler gcc dans sa langue natale, parce que bon, les erreurs de compilo en anglais sont un poil imbitable :)

En gros, ce que ce brave gcc essaye de te dire, c'est qu'il ne connait pas de fonction nommée ltoa ... et pour cause, cette fonction n'existe effectivement pas sous linux:

[gco@gc]:~% man ltoa
No manual entry for ltoa

A il ne te reste donc plus qu'à contourner ce problème (sprintf, etc...)

  • [^]Re: re

    Posté par Nicolas P. (page perso, ) le 12/05/2006 à 09:54. (lien). Évalué à 1.

    Déja, un bon début serait de faire parler gcc dans sa langue natale, parce que bon, les erreurs de compilo en anglais sont un poil imbitable :)


    Qu'est-ce que tu veux dire ? « erreur: « ltoa » n'a pas ete declare dans cet horizon », c'est du français, pas de l'anglais...

    Où alors, est-ce que tu voudrais insinuer qu'il faut laisser gcc parler dans sa langue à lui, gcc, c'est à dire l'anglais, parce que les traductions des messages d'erreur seraient mauvaises ?

    --
    this != '|' ;
    • [^]Re: re

      Posté par Gérald (page perso, ) le 12/05/2006 à 11:53. (lien). Évalué à 2.

      Oui, je voulais dire qu'il fallait laisser gcc parler en anglais. Les traductions ne sont pas "mauvaises", elles sont simplement beaucoup moins parlantes qu'en VO.

      • [^]Re: re

        Posté par Nicolas P. (page perso, ) le 12/05/2006 à 18:08. (lien). Évalué à 1.

        « « ltoa » n'a pas ete declare dans cet horizon », je ne trouve pas ça moins parlant que « "itoa" was not declared in this scope ». Bon, c'est vrai que la première fois que j'ai lu « erreur de segmentation » ça m'a un peu surpris.

        Ceci dit, actuellement sur ma Slackware, en console, je dois avoir LANG="C"... mais de là à recommander de ne pas utiliser les traductions, non !

        --
        this != '|' ;
        • [^]Re: re

          Posté par gaaaaaAab () le 15/05/2006 à 09:25. (lien). Évalué à 1.

          y a matière à troller là :)

          Le problème de fonctionner avec les versions localisées des softs, c'est que face à une erreur, 'on se retrouve souvent dans le cas :
          "Je ne trouve pas grand chose sur les forums."

          surtout pour les erreurs un peu "exotiques".

          Je tire mon chapeau à Oracle là dessus. Ca doit être bien lourdingue de se cogner la maintenance d'une liste de code d'erreurs, mais faut reconnaitre que ça simplifie les recherches sur le net.

ansi

Posté par Wallou Wally () le 12/05/2006 à 08:08. (lien). Évalué à 1.

Il me semble que itoa n'est pas un fonction C ANSI, ce qui expliquerait son absence.

  • [^]Re: ansi

    Posté par sdatcha () le 12/05/2006 à 09:03. (lien). Évalué à 1.

    Merci pour vos réponses.
    Je confirme que ltoa n'est pas une fonction C ANSI.
    Comment est ce qu'on peut faire pour changer la langue de gcc? Est ce lié à la langue de l'OS?

    • [^]Re: ansi

      Posté par Pol' uX () le 12/05/2006 à 11:18. (lien). Évalué à 2.

      Tu n'as qu'a écrire un faux Itoa qui utilise sprintf.

      Un OS n'a pas de langue, c'est la librairie standarde qui est différente.

      Tu peux améliorer la portabilité de ton code, en utilisant des #define et #ifdef, ou tout simplement en utilisant les librairies standardes.

      --
      Soutenez le logiciel libre, en adhérant dès maintenant à l'April
      • [^]Re: ansi

        Posté par Gérald (page perso, ) le 12/05/2006 à 11:54. (lien). Évalué à 2.

        Pour changer la langue des messages d'erreur de gcc, il faut changer les locales.
        export LC_ALL=C devrait faire l'affaire.

      • [^]Re: ansi

        Posté par alveric () le 15/05/2006 à 07:05. (lien). Évalué à 0.

        Pas forcément besoin de sprintf() si tu veux juste travailler en base 10; mais il est vrai qu'il est préférable de réutiliser la bibliothèque standard dès que possible (on perd (peut-être) un peu en perf ce qu'on gagne (sûrement) en robustesse).
        Pour éviter les débordements de tampon, tu peux aussi utiliser snprintf() (ou faire un malloc() de la bonne taille).

        Sinon, si tu aimes réinventer la roue: http://mail.gnome.org/archives/gtk-app-devel-list/2004-Septe(...)
        ou http://www.jb.man.ac.uk/~slowe/cpp/itoa.html

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c