Ovrez un fichier dans votre éditeur favori (emacs, évidemment) et tapez le code suivant:
#!/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 &...).
# Re: Compiler du C à la volée
Posté par sn00py . Évalué à 2.
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
Posté par Matthieu Moy (site web personnel) . Évalué à 1.
Alors dans ce cas,
- #!/bin/bash
+ #!/bin/sh
[^] # Re: Compiler du C à la volée
Posté par Castor666 . Évalué à 1.
- #!/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
Posté par Gniarf . Évalué à 1.
[^] # Re: Compiler du C à la volée
Posté par Anonyme . Évalué à 1.
[^] # Re: Compiler du C à la volée
Posté par Krunch (site web personnel) . Évalué à 1.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
# Re: Compiler du C à la volée
Posté par TImaniac (site web personnel) . Évalué à 1.
[^] # Re: Compiler du C à la volée
Posté par Obsidian . Évalué à 3.
# Re: Compiler du C à la volée
Posté par Salagnac . Évalué à 2.
#!/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
Posté par Bungee Tux . Évalué à 1.
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
Posté par doublehp (site web personnel) . Évalué à 0.
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
Posté par Pooly (site web personnel) . Évalué à 1.
[^] # Re: Pike
Posté par Marc Quinton . Évalué à 2.
# Compatibilité
Posté par superna (site web personnel) . Évalué à -1.
(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;
}
:-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.