Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Compilation "from scratch"

15 réponses
Avatar
Hank
Bonjour,

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

10 réponses

1 2
Avatar
espie
In article <4b1bbc63$0$32362$, Hank wrote:
Bonjour,

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.



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...
Avatar
Éric Lévénez
Hank a écrit :

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/>
Avatar
Pierre Maurette
Marc Espie, le 06/12/2009 a écrit :

[...]

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
Avatar
Hank
Pierre Maurette a écrit :
Marc Espie, le 06/12/2009 a écrit :

[...]

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



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.
Avatar
Richard Delorme
Le 06/12/2009 16:36, Hank a écrit :

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
Avatar
-ed-
On 6 déc, 15:14, Hank wrote:
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



"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.
Avatar
-ed-
On 6 déc, 16:13, Pierre Maurette wrote:
> Litteralement, c'est "compiler a partir de rien".

On utilise beaucoup, même en français, "ex nihilo".



J'appelle ça du latin ...
Avatar
-ed-
On 6 déc, 23:55, Richard Delorme wrote:
> 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.



et ça présuppose que les outils adéquates sont présents sur la mach ine
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 ...)
Avatar
bpascal123
On 7 déc, 10:58, -ed- wrote:
On 6 déc, 23:55, Richard Delorme wrote:

> > 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 pou r
> recompiler tout le projet.

et ça présuppose que les outils adéquates sont présents sur la ma chine
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?
Avatar
Hank
-ed- a écrit :
On 6 déc, 23:55, Richard Delorme wrote:
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.



et ça présuppose que les outils adéquates sont présents sur la machine
et installés et accessibles comme il se doit.



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.

(ou alors confie ce travail un un vrai pro ...)



1 2