Salut,

Voila j'essaye actuellement de compiler des sources en C avec gcc et ld en "plain binary" dit aussi"binaire plat" avec l'option --oformat binary de ld. j'essaye sur un tous petit bout de C.



Cela marche tres bien sur Linux, aucun probleme.



Par contre sur windows, je n'y arrive pas je ne comprend pas tous ce qui ce passe en fait.




Cliquez ici pour voir le déroulement de la methode utilisée.

Je me récupere les message d'erreur suivant:
undefined reference to '_alloca'
undefined reference to '__main'
[Je n'est pas mis ca dans mon code moi !!!]

Lorsqu'on essaye d'aller plus loin, linkage directement en binaire on a le message d'erreur :
ld: PE operations on non PE file.
(Les PE sont les formats d'exécutables sur windows)
[Bah je ne veux pas faire de PE moi justement !!!!]

Voila mes questions

- D'ou viennent ces underscore '_' ? Comment s'en débarrasser ?
- D'ou vient ce __main ? Comment s'en débarrasser ?
- D'ou vient ce __alloca ? Comment s'en débarrasser ?
- Pourquoi dois je passer "_main" au lieu de "main" comme point d'entrée ?
- Bref comment compiler plain binary sous Windows avec gcc et lg ?.
- Pourquoi ces différences entre les versions portées gcc et ld ?
- Quelqu'un a t'il déja réussi a faire ca sous windows ?
- Est ce que je me trompe ?

J'ai du mal a trouver les infos sur le net concernant Windows...

Merci de m'aider

Hexanium