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.
# re
Posté par LaBienPensanceMaTuer . Évalué à 2.
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. . Évalué à 1.
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 ?
[^] # Re: re
Posté par LaBienPensanceMaTuer . Évalué à 2.
[^] # Re: re
Posté par Nicolas P. . Évalué à 1.
Ceci dit, actuellement sur ma Slackware, en console, je dois avoir LANG="C"... mais de là à recommander de ne pas utiliser les traductions, non !
[^] # Re: re
Posté par gaaaaaAab . Évalué à 1.
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 Cédric Chantepie . Évalué à 1.
[^] # Re: ansi
Posté par sdatcha . Évalué à 1.
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 (site web personnel) . Évalué à 2.
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.
Adhérer à l'April, ça vous tente ?
[^] # Re: ansi
Posté par LaBienPensanceMaTuer . Évalué à 2.
export LC_ALL=C devrait faire l'affaire.
[^] # Re: ansi
Posté par alf . Évalué à 0.
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
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.