compilateur C HP-UX

compilateur C HP-UX - C - Programmation

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

Reply

Marsh Posté le 23-01-2007 à 09:59:38   

Reply

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
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


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.


Message édité par Emmanuel Delahaye le 23-01-2007 à 10:53:17

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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.

Reply

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. :/

Reply

Marsh Posté le 23-01-2007 à 11:10:26    

db__ a écrit :

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.


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


Message édité par Emmanuel Delahaye le 23-01-2007 à 11:11:19

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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

Reply

Marsh Posté le 23-01-2007 à 11:55:59    

db__ a écrit :

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


Tu es bien conscient que tu travailles sans filets...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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.

Reply

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.
l'utilitaire en question ne sortira pas de mon entreprise et ne sera utilisé que par 2 personnes.


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é.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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.

Reply

Marsh Posté le 23-01-2007 à 13:11:32   

Reply

Marsh Posté le 23-01-2007 à 13:48:31    

db__ a écrit :

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.


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...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed