Voilà je ne suis pas du tout un pro du C mais j'ai besoin d'un conseil.
En fait, je ne suis pas sûr de poster au bon endroit donc je sollicite
un peu de indulgence de votre part.
J'ai souvent lu (dans emacs par exemple) sur le net l'expression "to
compile from scratch" et je voudrais savoir ce que cela veut dire. Cela
me pose une problème aujourd'hui car on me demande de compiler les
sources d'un programme en C et c'est comme cela que c'est exprimé.
Merci d'avance.
Hank
Litteralement, c'est "compiler a partir de rien".
Le sens precis risque de dependre un peu du contexte...
Souvent, un gros programme ne se compile pas 'comme ca', mais depend d'outils
ou de bibliotheques externes. Voire, de la version anterieure du programme,
s'il y a des bouts de compilation dedans.
Ce genre de choses est "cache" sur beaucoup de systemes modernes, ou tu
peux generalement recuperer des logiciels tout compiles pour ta machine.
Donc faudra un peu plus de details pour t'en dire plus: on te demande de
compiler quoi ? histoire deja d'etre sur que ca a du sens de "compile
from scratch", que t'es pas en train de faire des efforts pour rien...
> J'ai souvent lu (dans emacs par exemple) sur le net l'expression "to
> compile from scratch" et je voudrais savoir ce que cela veut dire. Cela
> me pose une problème aujourd'hui car on me demande de compiler les
> sources d'un programme en C et c'est comme cela que c'est exprimé.
Ce terme est souvent associé à GNU/Linux et à ses distributions. Une
compilation from scratch de ce système veut dire que l'on compile *tout*
sur une machine en cross-compilation pour la cible. Cela inclus donc
le noyau, les bibliothèques, les utilitaires, tous les programmes...
Rien n'est précompilé ou utilisé en binaire, tout est en source. Ensuite
on fait une image disque, flash, CD, DVD... du système pour pouvoir
l'utiliser sur la cible.
Compiler un programme unique from scratch n'a pas beaucoup de sens à mon
avis, cela veut dire simplement qu'on le compile à partir des sources.
Il faut donc avoir tous les sources du programme et pas juste des bouts.
Parfois le compilateur utilisé est lui aussi recompilé et c'est la
version que l'on a compilé soi-même qui est ensuite utilisé pour
compiler la suite des programmes. Mais cela est plutôt fait pour tester
le compilateur lui-même.
--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
[...]
> Litteralement, c'est "compiler a partir de rien".
On utilise beaucoup, mᅵme en franᅵais, "ex nihilo".
> Le sens precis risque de dependre un peu du contexte...
Je connaissais le "from scratch" en ... production vidᅵo. Mais en
informatique, je vois surtout "Linux From Scratch", que j'ai essayᅵ
pour renoncer rapidement. Et d'ailleurs est-ce vraiment "from scratch"
? Mᅵme un boot secteur qui affiche "Bonjour" est-il "from scratch" ?
> Souvent, un gros programme ne se compile pas 'comme ca', mais depend d'outils
> ou de bibliotheques externes. Voire, de la version anterieure du programme,
> s'il y a des bouts de compilation dedans.
>
> Ce genre de choses est "cache" sur beaucoup de systemes modernes, ou tu
> peux generalement recuperer des logiciels tout compiles pour ta machine.
>
> Donc faudra un peu plus de details pour t'en dire plus: on te demande de
> compiler quoi ? histoire deja d'etre sur que ca a du sens de "compile
> from scratch", que t'es pas en train de faire des efforts pour rien...
J'ai pensᅵ *exactement* la mᅵme chose ᅵ la lecture du message initial.
Le "from scratch" a toutes les chances d'ᅵtre un plᅵonasme. Ou une
mauvaise reformulation de "repartir ᅵ zᅵro" ?
--
Pierre Maurette
Merci ᅵ tous pour vos rᅵponses rapides.
En fait, je veux recompiler les sources du programme LuaTeX, je ne sais
si ᅵa vous parle. Je peux vous donner le lien vers les sources du projet
mais le serveur ne semble pas fonctionner en ce moment
(http://foundry.supelec.fr). Voici le tarball avec les sources (comme il
fait moins de 8 Mo, il passe avec cijoint) : il faut le renommer
l'extension .txt en .bz2 :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijH7kzJDo.txt
Comment dois-je compiler ceci alors ?
Merci encore.
> Merci ᅵ tous pour vos rᅵponses rapides.
> En fait, je veux recompiler les sources du programme LuaTeX, je ne sais
> si ᅵa vous parle. Je peux vous donner le lien vers les sources du projet
> mais le serveur ne semble pas fonctionner en ce moment
> (http://foundry.supelec.fr). Voici le tarball avec les sources (comme il
> fait moins de 8 Mo, il passe avec cijoint) : il faut le renommer
> l'extension .txt en .bz2 :
>
> http://www.cijoint.fr/cjlink.php?file=cj200912/cijH7kzJDo.txt
>
> Comment dois-je compiler ceci alors ?
En ouvrant le tarball et en lisant la documentation fournie. Dans ce
cas, le fichier INSTALL dit qu'il faut utiliser le fichier build.sh pour
recompiler tout le projet.
--
Richard
"from scratch" peut se traduire en langage courant par "à partir de
zéro"
> me pose une problème aujourd'hui car on me demande de compiler les
> sources d'un programme en C et c'est comme cela que c'est exprimé.
Ca signifie reconstruire complètement un programme (rebuild all).
En principe le processus est automatique si l'environnement de
développement est bien fait.
IDE : "rebuild all"
Makefile : cible "all" ou "scratch" etc. Lire la doc de développement.
Ca a pour effet
- d'effacer tous les fichiers recompilables (objets, exécutables,
bibliothèques)
- de relancer entièrement le processus de production de code
(compilation, éditions de lien etc.)
cette opération peut prendre de quelques minutes à plus d'une heure
selon la taille du programme et la puissance de la machine.
J'appelle ça du latin ...
et ça présuppose que les outils adéquates sont présents sur la machine
et installés et accessibles comme il se doit.
(shell, makefile, compilateur/éditeur de liens avec la bonne version,
bibliothèques cohérentes etc.)
Au P.O. si tu n'es pas un "pro du C", ça va être l'occasion de le
devenir... (ou alors confie ce travail un un vrai pro ...)
Ne doit-il pas devenir un pro de linux pour ça?
Je ne sais pas comment traiter ce fameux fichier build.sh.
Je suis d�sol�, je suis vraiment novice et en plus je suis sous Windows
Vista.
J'ai install� MinGW, j'ai mis le r�pertoires des binaires dans mon path
mais ensuite je ne sais pas quoi faire.
Ensuite, dans le dossier source, il y a deux fichier Makefile.am et
Makefile.in
Dois-je les traiter avec makefile (mingw32-make.exe en fait)
> (shell, makefile, compilateur/�diteur de liens avec la bonne version,
> biblioth�ques coh�rentes etc.)
>
> Au P.O. si tu n'es pas un "pro du C", �a va �tre l'occasion de le
> devenir...
En fait, c'est une occasion pour moi de faire mes premiers pas.
Je ne suis pas un pro de linux mais j'ai d�j� install� quelques ubuntu,
�a compte ?
Hihi non il n'y a vraiment pas besoin d'être un pro pour savoir
installer Ubuntu. Par contre pour une LFS (Linux From Scratch), en
l'installant on devient très certainement un pro ! :)
Sinon pour cette compilation, il n'y a en général rien de très compliqué
à vérifier qu'on a les bons outils avant de lancer une compilation par
Makefile. Normalement en suivant les instructions du fichier INSTALL tu
ne devrais pas avoir trop de problème...
Ham
Avant tout, es-tu certain que les sources dont tu disposes peuvent
être compilés sous Windows et pour Windows ?
Il est possible que le projet soit 'multi-cible' (à vérifier dans la
doc), mais que le compilation ne puisse se faire que sur une cible
donnée.
Bref, une fois de plus, il faut lire la doc. On en sait pas plus que
toi sur ce sujet...
Fausse route (et pas le bon groupe, d�sol�) !
Si tu as un fichier .sh, il te faut un interpr�teur de commandes Unix
(qui s'appelle "shell", ou sh). Tu as trois solutions de base, dans un
ordre croissant d'�loignement � l'environnement Windows habituel :
- dans le genre MinGW, utiliser MSYS (disponible sur le m�me site) qui
fournit en plus du compilateur C un environnement de ligne de commande �
la mode Unix ;
- utiliser Cygwin, un environnement � la mode Unix qui tourne au-dessus
de Windows (et en fait, MSYS est une version r�duite de Cygwin) ;
- utiliser le mode Unix de Windows, qui s'appelle SUA, suacommunity.com
(outil plut�t orient� pro, en anglais, et peu utilis� donc pas beaucoup
d'aide sur le 'net).
Et d�sol� de ne pas te donner plus d'information, mais ce n'est pas le
lieu, on est passablement hors sujet.
Antoine
J'ai install� MinGW mais je n'avais pas install� MSYS et �a m�me tout de
m�me beaucoup mieux.
> - utiliser Cygwin, un environnement � la mode Unix qui tourne au-dessus
> de Windows (et en fait, MSYS est une version r�duite de Cygwin) ;
> - utiliser le mode Unix de Windows, qui s'appelle SUA, suacommunity.com
> (outil plut�t orient� pro, en anglais, et peu utilis� donc pas beaucoup
> d'aide sur le 'net).
>
> Et d�sol� de ne pas te donner plus d'information, mais ce n'est pas le
> lieu, on est passablement hors sujet.
Oui tu as raison je suis d�sol� mais comme je n'avais pas pu identifier
clairement la nature de mon probl�me je suis venu ici.
> Antoine
Merci beaucoup Antoine