Cemprendre la phase du compilation??
Fermé
Joker_
Messages postés
172
Date d'inscription
mardi 13 octobre 2009
Statut
Membre
Dernière intervention
20 janvier 2023
-
17 févr. 2010 à 09:59
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 17 févr. 2010 à 14:56
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 17 févr. 2010 à 14:56
A voir également:
- Cemprendre la phase du compilation??
- Breach compilation - Guide
- Inversion phase haut parleur ✓ - Forum Enceintes / HiFi
- Erreur de compilation projet ou bibliothèque introuvable ✓ - Forum VB / VBA
- Schéma branchement coupleur de phase ✓ - Forum CPL
- 50 volts entre phase et neutre - Forum Matériel & Système
12 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 10:04
17 févr. 2010 à 10:04
en fait, plus que pour un processeur, la compilation est faite pour un jeu d'instructions. Dans nos PC, on utilise le jeu d'isntruction x86 et x86_64. ce jeu a été créé par intel. Il se peut que ton processeur motorola utilise aussi ce jeu d'instruction. Par exemple, els processeurs AMD et VIA utilisent aussi le jeu x86.
Ton ordinateur utilise windows XP. Windows XP n'existe que pour les jeux d'instruction x86 32 et 64 bits, donc ton processeur doit forcement utiliser ce jeu. Quel est la référence de ce processeur ?
Ton ordinateur utilise windows XP. Windows XP n'existe que pour les jeux d'instruction x86 32 et 64 bits, donc ton processeur doit forcement utiliser ce jeu. Quel est la référence de ce processeur ?
Joker_
Messages postés
172
Date d'inscription
mardi 13 octobre 2009
Statut
Membre
Dernière intervention
20 janvier 2023
1
17 févr. 2010 à 10:09
17 févr. 2010 à 10:09
Nabla's!! J'ai parlé d'un exemple qui peut bien exister c'est pas une cas qui se passe avec moi!
Est ce que mon question est claire?
Est ce que mon question est claire?
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 10:12
17 févr. 2010 à 10:12
Salut
La question n'est pas claire, mais la réponse l'est ;)
En général, on compile pour le système cible à partir du système hôte.
Il faut tenir compte à la fois du jeu d'instruction ET de l'OS cible.
Lorsque quelque chose diffère entre la cible et l'hote, on fait alors une CROSS-COMPILATION
La question n'est pas claire, mais la réponse l'est ;)
En général, on compile pour le système cible à partir du système hôte.
Il faut tenir compte à la fois du jeu d'instruction ET de l'OS cible.
Lorsque quelque chose diffère entre la cible et l'hote, on fait alors une CROSS-COMPILATION
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 10:12
17 févr. 2010 à 10:12
il existe des emulateurs, qui convertisse les isntructiosn en temps réel, affin qu'elles soient comprise par la machine hote.
Lors de la créationde ton exe, il y a la compilation, mais aussi le link, et cette étape dépend du systeme d'exploitatation. Ainsi, ton exe compilé pour windows ne tournera pas sous linux, mais a priori la compilation aura été la meme (si je ne me trompe pas)
Lors de la créationde ton exe, il y a la compilation, mais aussi le link, et cette étape dépend du systeme d'exploitatation. Ainsi, ton exe compilé pour windows ne tournera pas sous linux, mais a priori la compilation aura été la meme (si je ne me trompe pas)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 10:17
17 févr. 2010 à 10:17
@Nabla:
Le linker se charge uniquement de rassembler les .h et .c (dans le cas du C) nécéssaires qui auront été au préalablement compilés en fichier objets par l'assemblage (.o)
Le linker se charge uniquement de rassembler les .h et .c (dans le cas du C) nécéssaires qui auront été au préalablement compilés en fichier objets par l'assemblage (.o)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 10:20
17 févr. 2010 à 10:20
ok, je sais:
{C, H} ==Compilataion==>> {O} ==Link ==>Exe
et selon toi, à quel moment le code se différencie t il entre linux et windows? Je susi aps sur à 100%, mais je pense bien que c'est au moment du link ...
{C, H} ==Compilataion==>> {O} ==Link ==>Exe
et selon toi, à quel moment le code se différencie t il entre linux et windows? Je susi aps sur à 100%, mais je pense bien que c'est au moment du link ...
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 10:23
17 févr. 2010 à 10:23
Non, c'est au moment du préprocessing si ça a été bien fait. Tu dois avoir une partie du genre:
#ifdef (x86) ....
#else ifdef (unix) ....
#endif
en entête de certains .h.
Après ça reste compliqué pour moi de comprendre aussi .
Mais il faut savoir que ça existe.En gros le programme détecte l'hote avant la compil.
#ifdef (x86) ....
#else ifdef (unix) ....
#endif
en entête de certains .h.
Après ça reste compliqué pour moi de comprendre aussi .
Mais il faut savoir que ça existe.En gros le programme détecte l'hote avant la compil.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 10:40
17 févr. 2010 à 10:40
le preprocessing ca permet simplement d'executer un certain code sur unix, un code different sur windows. Ca correspond juste à une "selection" des lignes de code à utiliser
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 14:29
17 févr. 2010 à 14:29
c'est pas que j'aime avoir raison, mais:
https://forums.commentcamarche.net/forum/affich-37604426-la-compilation-et-les-modules-en-c-et-en-c
donc c'est bien au moment du link que le choix réel de l'OS se fait
https://forums.commentcamarche.net/forum/affich-37604426-la-compilation-et-les-modules-en-c-et-en-c
donc c'est bien au moment du link que le choix réel de l'OS se fait
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
>
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
17 févr. 2010 à 14:47
17 févr. 2010 à 14:47
Non tu n'a pas compris.
En fait, la seule chose qui diffère, c'est l'utilisation de linux.h ou windows.h par exemple.
Genre le bluetooth, tu as blueZ ou windowsstack. Le choix de l'une ou l'autre des libraries se fait bien dans le préprocesseur.
En fait, la seule chose qui diffère, c'est l'utilisation de linux.h ou windows.h par exemple.
Genre le bluetooth, tu as blueZ ou windowsstack. Le choix de l'une ou l'autre des libraries se fait bien dans le préprocesseur.
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
>
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
17 févr. 2010 à 14:56
17 févr. 2010 à 14:56
certes, tu vas pas te taper l'initialisation de la pile unix si t'es sous windows. Cependant, le moment ou tu te connectes à la librairie est fait lors du link:
Je cite:
3) Le linkage
Enfin, le compilateur agrège chaque fichier .o avec les éventuels fichiers binaires des librairies qui sont utilisées (fichiers .a et .so sous linux, fichiers .dll et .lib sous windows).
Je suis informaticien, je ne connais pas tout, mais je sais que l'étape la plus importante dans la decision du systeme de destination est faite lors du link... car c'est la que tu lies les librairies...
si tu fais une sortie ecran, ton code ne changera pas que tu sois sous linux ou windows, par contre, la librairie que tu utilisera sera isntanciée lors du link, et c'est à ce titre que ej persiste et signe.
Il faudrait faire un test sous windows et linux: faire un hello world, le compiler sous linux et windows, et comparrer les .o
Je cite:
3) Le linkage
Enfin, le compilateur agrège chaque fichier .o avec les éventuels fichiers binaires des librairies qui sont utilisées (fichiers .a et .so sous linux, fichiers .dll et .lib sous windows).
Je suis informaticien, je ne connais pas tout, mais je sais que l'étape la plus importante dans la decision du systeme de destination est faite lors du link... car c'est la que tu lies les librairies...
si tu fais une sortie ecran, ton code ne changera pas que tu sois sous linux ou windows, par contre, la librairie que tu utilisera sera isntanciée lors du link, et c'est à ce titre que ej persiste et signe.
Il faudrait faire un test sous windows et linux: faire un hello world, le compiler sous linux et windows, et comparrer les .o
Joker_
Messages postés
172
Date d'inscription
mardi 13 octobre 2009
Statut
Membre
Dernière intervention
20 janvier 2023
1
17 févr. 2010 à 10:47
17 févr. 2010 à 10:47
{C, H} ==Compilataion==>> {O} ==Link ==>Exe
mais ça manque une étape très intérrésante, là ou on obtient un fichier .ASM
Donc c'est :
{C, H} ==Compilataion==>>{.ASM} ===>Assembleur===>{.OBJ} ==Link: éditeur de lien ==>Exe
Mon problème est au niveau de fichier .ASM : qui contient les instructions intelligibles au point de vue processeur!
mais ça manque une étape très intérrésante, là ou on obtient un fichier .ASM
Donc c'est :
{C, H} ==Compilataion==>>{.ASM} ===>Assembleur===>{.OBJ} ==Link: éditeur de lien ==>Exe
Mon problème est au niveau de fichier .ASM : qui contient les instructions intelligibles au point de vue processeur!
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 11:00
17 févr. 2010 à 11:00
Oui tu veux savoir quoi?
Joker_
Messages postés
172
Date d'inscription
mardi 13 octobre 2009
Statut
Membre
Dernière intervention
20 janvier 2023
1
17 févr. 2010 à 11:06
17 févr. 2010 à 11:06
Tigzy, les instructions Assembleur dépend fortement de type du processeur et
consulter le sujet principale de cette discussion en cours!!
vous pouvez ainsi comprendre mon problème ;-)
consulter le sujet principale de cette discussion en cours!!
vous pouvez ainsi comprendre mon problème ;-)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 11:23
17 févr. 2010 à 11:23
je t'ai répondu avec les "jeux d'instruction".
dis nous de quel processeur motorola tu parles, et on te dira s'il accèpte ton exe.
de toute facon: exe = windows (généralement, meme si je sais que les symbian aussi utilisent exe) =>windows = x86
dopnc en gros, comme windows ne tourne que sur des plateformes x86, si tu lance ton exe sous windows, c'est que t'es sur du x86. Y a pas a chipoter !
la compilation dépend de l'OS et de la machine ....
donc bon, si tu précises pas mieux le cas de ton utilisation, qui d'après ce que j'ai compris n'est pas un cas réel, on ne pourra pas t'aider plus
dis nous de quel processeur motorola tu parles, et on te dira s'il accèpte ton exe.
de toute facon: exe = windows (généralement, meme si je sais que les symbian aussi utilisent exe) =>windows = x86
dopnc en gros, comme windows ne tourne que sur des plateformes x86, si tu lance ton exe sous windows, c'est que t'es sur du x86. Y a pas a chipoter !
la compilation dépend de l'OS et de la machine ....
donc bon, si tu précises pas mieux le cas de ton utilisation, qui d'après ce que j'ai compris n'est pas un cas réel, on ne pourra pas t'aider plus
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 11:07
17 févr. 2010 à 11:07
Mais justement j'ai déjà répondu!
Voir post 7
Voir post 7
Tigzy
Messages postés
7498
Date d'inscription
lundi 15 février 2010
Statut
Contributeur sécurité
Dernière intervention
15 septembre 2021
582
17 févr. 2010 à 11:27
17 févr. 2010 à 11:27
=>windows = x86
Ou x64 ;)
Ou x64 ;)
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 193
17 févr. 2010 à 11:34
17 févr. 2010 à 11:34
quand tu dis x64, tu veux dire x86_64: les extentions 64 bits des processeurs de série x86 (les core 2 duo,, les i3, i5, i7 et tous les processeurs commerciaux.
Il ne faut pas confondre x86_64 et IA64 (processeurs ITANIUM), qui ne sont pas compatibles !!!!!
windows est aussi disponible pour les IA64 mais c'est uen version spéciale
Il ne faut pas confondre x86_64 et IA64 (processeurs ITANIUM), qui ne sont pas compatibles !!!!!
windows est aussi disponible pour les IA64 mais c'est uen version spéciale
Joker_
Messages postés
172
Date d'inscription
mardi 13 octobre 2009
Statut
Membre
Dernière intervention
20 janvier 2023
1
17 févr. 2010 à 11:33
17 févr. 2010 à 11:33
Oui Nabla's tu as compris tous,
c'est une cas que j'ai imaginé,
Je pense que toutes les réponses peut m'aider à s'avancer et me guider pour comprendre le phénoménes
et peut m'aider aussi à n'imaginer pas n'importe de quoi :-)
Merci tegzy et Nabla!
c'est une cas que j'ai imaginé,
Je pense que toutes les réponses peut m'aider à s'avancer et me guider pour comprendre le phénoménes
et peut m'aider aussi à n'imaginer pas n'importe de quoi :-)
Merci tegzy et Nabla!