[SOS] Tuyau: Compilation sous Windows !!!

romain romain at hexanium.com
Dim 14 Aou 14:29:59 CEST 2005


Salut,

Je vois ici que l'on cause de Bosh sur Windows, on parle aussi de
compilation et de Cygwin sur Windows.
J'en profite alors pour donner mes maguoille trouvée au fur et a mesure.
Si ca peut accelerer la recherche pour les autre, j'en suis heureux...

Actuellement j'ai pas ma Mandrake sous la main accessible, donc je dois
me contanter de XP pro !!!
Perso je ne suis pas fan de Cygwin je compile directe avec un gcc et
avec un editeur de code (IDE) sur Win.

J'ai eu pas mal de probleme au début pour incorporer du C dans mon
noyau, il m'etait impossible de compiler sous windows alors que sur
Linux tout marchai du premier coup, gcc et ld compilais directement mon
main() alors que Windows ne voulais pas le salopio !

Astuce N° 1 : Les outils
-----------

La manip est tres simple, il suffit d'installer: MinGW Developer Studio
D'enregistrer le PATH des "bin" dans la variable d'environement pour
utiliser les commandes de partout et voila vous avez tous les outils de
compilation dont vous avez besoin (en + un IDE tres clean)

Voici donc une page qui explique mes probleme:
http://www.hexanium.com/hexatronic/other/binary_c_compile/binary_c_compi
le.htm
J'ai diffuser le probleme sur quelques forum et j'ai synthetisé les info
en fin d'article.


Astuce N° 2: Probleme de PE Head avec Ld sur MS Win
-----------
A noter que sur Windows le fichier de parametrage du linker Ld est
obligatoire pour éviter d'avoir des erreurs du style "PE Header on non
PE File !!!" (j'adore ce genre de message si explicite !) doit y avoir
un bug dans le portage. Il pourrais ressemblé a ca simplement:

ENTRY(_start_os)						//le
point d'entrée
SECTIONS
{
  .text  0x1000 : {					//origine du CS
    *(.text)
  }
  .data  : {						//On met les
data au cul du Cs
    *(.data)
  }
  .rdata : {						//On met les
rdata au cul du Cs (Important pour les z-chaines)
    *(.data)
  }
  .bss  :
  { 					
    *(.bss)
  }
}

Mes compilations etait souvent problématique jusqu'à ce que je prepare
ce fichie du linker !


Astuce N° 3: Créer une image sur Ms Win
-----------
Pour la création de l'image, ne vous acharné pas a trouver un dd.exe :)
il existe la commande copy sous Windows
Exemple si mon boot est boot.bin et mon noyau est kernel.bin on peux
créer une image ainsi:
COPY /B .\boot.bin + .\kernel.bin zumba.img


Astuce N° 4: Editeur
------------
Comme editeur de code j'utilise donc soit SYN un excellent editeur multi
source gratuit et tres bien fichu !
Je vous le recommende. Et pour avoir un pseudo IDE j'utilise l'IDE de
"MinGW Developer Studio" qui est un vrai IDE mais bien sur il connais
plus de function que ce que mon noyau supporte :D.


Astuce N° 5: Emulateur
------------
Bien j'ai installer simplement la version de Bosh Windows, pour le
moment je n'est pas de probleme mais apparament il en a ! Enfin pour
commencer c tres facile a utiliser, faite un tour dans le fichier
"bochsrc.txt" vous allez vite piger ! Regardez aussi le fichier
"bochsout.txt" qui peut aider des fois.
Meme si ls perf ne sont pas au rendez vous, ca permet de bien comprendre
ce qu'on fait !


Conclusion
----------

Bref avec tous ca j'arrive a compiler et debbuger sur Windows, j'ai pas
essayer de recompiler SOS mais ca ne va pas tarder, le seul truc c qu'il
faut mettre en Makefile en .bat c'est pas infaisable mais faut que je
trouve le temps.
Voila si ca peut éviter à d'autre de galérer autant que moi a trouver
les information sur Windows bah c me fait plaisir et ca se trouve
beaucoup de SOS vont etre compilé sur Windows ;)

A++

Romain







Plus d'informations sur la liste de diffusion Sos