compilateur C HP-UX - C - Programmation
Marsh Posté le 23-01-2007 à 10:52:42
db__ a écrit : Je souhaite compiler un programme que j'ai écrit sur une machine HP-UX |
Je ne suis pas sûr que ta version de cc comprenne autre chose, et dans ce cas, il n'est pas raisonnable modifier le code pour de retourner en arrière. Essaye de voir si tu ne peux pas installer une version plus récente, ou alors gcc.
Il faut voir ça avec l'administrateur système.
Marsh Posté le 23-01-2007 à 10:58:35
Merci pour ta réponse.
La machine en question étant très vieille et en sursis, je ne vais pas y installer autre chose
je vais donc me refaire tout le prototypage
le programme ne fait que 600 lignes.
Marsh Posté le 23-01-2007 à 10:59:37
Pas mieux.
Et bon courage, je sais ce que signifie de bosser avec des versions antediluviennes.
Marsh Posté le 23-01-2007 à 11:10:26
db__ a écrit : Merci pour ta réponse. |
Il y a un utilitaire (unprotoize) qui peut remettre les prototypes à l'ancienne... Il est probablement sur ta distrib de Linux...
http://gcc.gnu.org/onlinedocs/gcc/ [...] toize.html
Marsh Posté le 23-01-2007 à 11:25:00
Merci pour le lien mais trop tard
j'ai tout fait à la main et la compilation passe parfaitement
cela doit bien faire 20 ans que je n'avais plus utilisé de la syntaxe K & R
Marsh Posté le 23-01-2007 à 11:55:59
db__ a écrit : Merci pour le lien mais trop tard |
Tu es bien conscient que tu travailles sans filets...
Marsh Posté le 23-01-2007 à 12:34:26
Je ne dois pas en avoir conscience vu que je ne comprends pas ce propos.
l'utilitaire en question ne sortira pas de mon entreprise et ne sera utilisé que par 2 personnes.
Marsh Posté le 23-01-2007 à 12:37:53
db__ a écrit : Je ne dois pas en avoir conscience vu que je ne comprends pas ce propos. |
Lorsqu'on travaille sans prototypes (style K&R, c'est à dire pré-ANSI, comme tu le fais), le compilateur n'a aucun moyen de vérifier le nombre et le type des paramètres. Si tu fais une erreur, elle ne sera pas signalée et le comportement sera indéterminé.
Marsh Posté le 23-01-2007 à 13:11:32
Merci pour le renseignement.
Je programme en C depuis 1984 et jusqu'à présent je n'ai jamais eu ce type de problème. Ayant pris quelques habitudes à l'époque où il n'y avait pas d'interface de dévellopement intégré, je fonctionne toujours sans coloration syntaxique, et sans utiliser -wall. Je fais même des programmes de plus de 10000 lignes avec GTK+ et plusieurs fichiers sources sans utiliser de makefile et en tapant entièrement en code l'interface graphique.
Ceci m'a habitué à une certaine rigueur dans l'écriture du code et je ne fait que très peu d'erreur d'étourderie autre que la faute de frappe.
Honte à moi, je n'ai jamais utilisé de débogueur (même en assembleur) car je trouve que cela fait perdre plus de temps qu'autre chose et invite au laissé allez dans le codage.
En fait j'ai toujours codé et je coderai toujours en C en pensant à ce que je ferais en assembleur qui lui réclame une rigueur extrème si on veut obtenir un résultat avec quelques milliers de lignes de code.
Déchéance suprème : je fais de la programmation depuis 1979 et je ne comprends pas l'anglais. Si si c'est possible. Je n'ai cependant jamais programmé pour publier ou être utilisé à grande échelle donc mes programmes ne sont pas très résistant.
Marsh Posté le 23-01-2007 à 13:48:31
db__ a écrit : Merci pour le renseignement. |
Tu dois donc écrire du code d'une rigueur extrême et c'est bien. Mais un petit test avec
-Wall -Wextra -O2 -Wwrite-strings -Wstrict-prototypes |
peut révéler bien des surprises, même aux plus chevronnés d'entre nous, je l'ai appris à mes dépends...
Marsh Posté le 23-01-2007 à 15:39:49
Pour les prototypes, je suis peu amateur des biliothèques.
Dans la glib je me contente de malloc, free, memcpy et memset
j'utilise GDK/GTK comme bibliothèque et c'est tout
donc pour les prototypes je fais un man quand je ne suis pas sur de moi ou un regard dans le bouquin pour GTK.
le -Wall est interressant en fin de parcours pour supprimer toutes les variables inutilisées
-Write-strings -> je ne suis jamais parvenu à saisir l'intéret d'utiliser const quelque part. Quand à écrire sur une chaine initialisée, il faut être extrèmement distrait.
les autres je ne les ai pas trouvé dans le man gcc en français du linux dont je dispose au travail qui a au moins 4 ans.
Grâce à des personnes comme toi qui sont présentes sur ce forum ou d'autre, qui dominent leur sujet, qui savent expliquer de façon claire et pédagogique, tout en y consacrant pas mal de leur temps, il est possible de progresser sans devoir nécessairement se manger la littérature anglaise qui n'est pas forcément de meilleurs qualité.
Mon programme tourne maintenant. Il ne résisterait pas 1 mn à quelqu'un qui voudrait le prendre en défaut, mais les utilisateurs potentiels ne cherche pas à le faire.
Marsh Posté le 23-01-2007 à 09:59:38
Bonjour
Je souhaite compiler un programme que j'ai écrit sur une machine HP-UX
ce programme compile avec gcc sous linux
gcc est inconnu de HP-UX et le cc n'y parvient pas
man cc ne fonctionne pas.
A priori il s'agirait d'un problème de prototypage des fonctions.
J'écris cela tel
long lit_ligne (FILE *pf, char *tp)
il voudrait ça à l'ancienne tel
long lit_ligne (*pf, *tp)
FILE *pf;
char *tp;
quelqu'un connait-il l'option à envoyer pour que ce compilateur comprenne
les déclarations autre que K&R
Merci