Retourner aux forums || Retourner au forum Astuces.divers
Astuces.divers : [Terminal] Compiler du C à la volée
Posté par Salagnac () le 21 décembre 2003#!/bin/bash total_lignes=`cat $0 | wc -l` ; ligne_arob=`grep "@""@" -m 1 -n $0 | cut -f1 -d:` cat $0 | tail -$[ $total_lignes - $ligne_arob ] > /tmp/cs.$$.c gcc -Wall -o /tmp/cs.$$ /tmp/cs.$$.c && /tmp/cs.$$ $* ; rm /tmp/*$$* ; exit @@ fin de l'en-têteà la suite on met un fichier C des familles (avec main(), et tout), on enregistre ça (j'ai pris l'habitude de nommer les fichiers avec le suffixe .cs), on chmod +x et roulez jeunesse (les arguments passent, ça peut se lancer avec un &...).
> Lire le message (14 commentaires, moyenne: 1,1).
Re: Compiler du C à la volée
On peut aussi faire un script qui vire la 1ère ligne d'un fichier avant de le compiler et de l'executer.
Ainsi dans nos 'scripts C' il suffit de mettre :
#!/chemin/de/mon/script
evidement, c'est moins pratique si on veut distribuer les 'scripts C',
mais un 'script C' c'est bien pour faire 'un truc en vitesse', non ?
Re: Compiler du C à la volée
> c'est suffisament rustique pour passer n'importe où,
Alors dans ce cas,
- #!/bin/bash
+ #!/bin/sh
-
[^]Re: Compiler du C à la volée
Posté par Castor666 () le 04/01/2004 à 09:29. (lien). Évalué à 1.Je dirais même :
- #!/bin/sh
+ #! /bin/sh
Certains systèmes UNIX (ceux basés sur 4.2BSD) prennent un nombre magique sur quatre octets, réclamant un espace après le !, #! /bin/sh.
( http://absfr.tuxfamily.org/abs-2.2-fr/sha-bang.html(...) )-
[^]Re: Compiler du C à la volée
-
-
[^]Re: Compiler du C à la volée
Posté par gnap gnap (page perso, ) le 12/03/2004 à 17:21. (lien). Évalué à 1.Mouais, sur un Unix décent, /bin/bash devrait fonctionner, même sans être le shell par défaut...
-
[^]Re: Compiler du C à la volée
Posté par Krunch (Jabber id, page perso, ) le 25/04/2004 à 10:46. (lien). Évalué à 1.Bash n'est pas le seul shell existant. En cherchant un peu doit y avoir moyen de trouver des *nix sur lesquels Bash n'est pas installé par défaut.
--
Free Softwares Users Group Arlon (Sud Luxembourg, Belgique)
pertinent, e adj. Approprié ; qui se rapporte exactement à ce dont il est question.
-
Re: Compiler du C à la volée
ps : les fichiers .cs c'est pour les fichiers sources en C# (C Sharp) ;)
-
[^]Re: Compiler du C à la volée
Re: Compiler du C à la volée
On m'a aussi répondu sur un journal: http://linuxfr.org/~Salagnac/4500.html(...) , dans lequel il m'est apparu qu'il y avait bien plus élégant :
#!/bin/sh
tail +3 $0 >/tmp/cs.$$.c && gcc -Wall -o /tmp/cs.$$ /tmp/cs.$$.c && /tmp/cs.$$ $*; rm -f /tmp/cs.$$*; exit
suivi du fichier C (voir http://linuxfr.org/comments/251426.html(...) ). Enjoy !
Re: Compiler du C à la volée
je trouve ca dommage de compile avec tous les warning allumes et sans dire depeche toi de compiler au compilateur .
allez moi j'enleve -Wall
je rajoute un -O0 pour etre sur qu'il ne tente pas d'optimizer
et un -pipe pour qu'il fasse tout en memoire .
j ai 100 fois plus propre et plus petit
j ai 100 fois plus propre avec un truc fait pour ... mais au lieu de diverger 3 ans ... je vais simplement donner un exemple :
http://www.doublehp.org/tcc.png(...)
ca montre la fois la puissance du system et sa legerete, donc la possibilite de l inclure dans un system minimaliste : vous avez plus minimaliste qu une disquette d install potatoe dans un vmware avec 16Mo de RAM ?
le compilateur et sa librairie prennent a eux deux 76544 Ko ...
Pike
met toi a Pike, ca ira mieux...
-
[^]Re: Pike
[+] Compatibilité
Bon ben voila un test qui fonctionne trés bien sous Max Os X et Linux Woody :
(en utilisant les commentaires precedants)
#! /bin/sh
tail +3 $0 >/tmp/cs.$$.c && gcc -pipe -O0 -o /tmp/cs.$$ /tmp/cs.$$.c && /tmp/cs.$$ $*; rm -f /tmp/cs.$$*; exit
#include <stdio.h>
int main()
{
printf("Hello World !\n");
return 0;
}
:-)
Revenir en haut de page || Retourner aux forums || Retourner au forum Astuces.divers



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.