Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme de compilation flat binary ou plain binary sur windows [ Archives / c, c++ et asm ] (hexanium)

mercredi 20 juillet 2005 à 18:21:32 | Probleme de compilation flat binary ou plain binary sur windows

hexanium

Salut,
j'essaye de compiler un fichier C en binaire plat, c'est a dire le bytecode pur sans entete ni ajout de library.
J'ai essayé sous Linux ca marche tres bien, j'ai essayez sous windows et la impossible !!!
je ne comprend pas tous , quelqu'un peut il m'aider ?

cliquez ici pour voir la procedure d'essais

Sous linux:


Sous windows


Message d'erreur:
undefined reference to '_alloca' -> _alloca non définis, bah c'est pas moi qui à mis ça dans le source !!!
undefined reference to '__main' -> _main non définis, bah c'est pas moi qui à mis ça dans le source !!!
 

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

 

Je ne comprend pas cette différences entre les deux OS sur une même appli portée.

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


Quelqu'un peut il maider ?

Merci d'avance

Hexanium




jeudi 21 juillet 2005 à 13:25:48 | Re : Probleme de compilation flat binary ou plain binary sur windows

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

déjà, je constate que les ligne de commande ld ne sont pas les memes:
"ld test.o -e main -o test_elf" et "ld test.o -e main"

c'est quoi l'option -o ?

avec gcc tu doit pouvoir sortir un fichier elf meme sous windows, il ne sera pas executable sur ce system d'exploitation et c'est tout.

@++

jeudi 21 juillet 2005 à 15:41:00 | Re : Probleme de compilation flat binary ou plain binary sur windows

hexanium

Salut Patatalo,

Bien en effet les lignes ne sont pas les memes, l'option -o permet de spécifier le nom du fichier de sortie si non il a un nom par defaut.En fait j'aimerais arriver a compiler un binaire plat, sans entete PE sans meme l'entete ELF tous ca, le byte code pur, comme quand on compile un noyau. Le truc c'est que ca marche sur linux, on a le bytecode direct, sous Windows, je n'y arrive pas !
Un peu relou ce truc,
pourtant j'arrive bien a compiler un exe (PE) sous gcc

Merci de m'aider

Hexanium


jeudi 21 juillet 2005 à 23:08:29 | Re : Probleme de compilation flat binary ou plain binary sur windows

hexanium

Réponse acceptée !
Salut,

Bien en postant sur plusieurs forum j'ai trouvé des reponces a mes questions:
la synthese est ici en bas de l'article:
[ Lien ]
Merci à vous pour le coup de main !

Hexanium




Cette discussion est classé dans : windows, main, pe, binary, plain


Répondre à ce message

Sujets en rapport avec ce message

interruption du bios et du dos sous windows [ par eedy31 ] eedy31Salut a tous est ce que quelqu'un pourait m'aider car je ne sais pascomment faire pour utiliser les interruption du dos et du bios sous windows! Problème de syles Windows XP [ par Nemesis ] Suite à une mauvaise manipulation (c toujours comme ça que ça arrive), j'ai perdu le style de Windows XP (fenètres bleues, etc...) et je retrouve la v EXE Infector [ par seboss ] Bonjour tout le monde,Je dois realiser un petit projet sympas utilisant le C++,VB et ASM... Mais l'ASm je ne connasi pas assez bien pour realiser ce q 512 bps port serial [ par abarbu ] est il possible sous Windows (9x ou XP) que je programme le 8253 timer pour obtenir 512 Hz e user ce frequence pour le port serialle (RS232) ?Sous DO La fonction API SendMessageA [ par douja ] Bonjour les amis J'utilise la fonction SendMessageA pour la justification à droite des mes zones de saisie avec les paramètres suivants: SendMessag Un ptit coup de main svp...c po difficile... [ par anosan ] Salut tout le monde,J'aurais besoin d'un coup de main en prog asm:J'ai besoin de traiter un caractère; Si sa valeur hexa >=22h, alors je lui enlève 22 API Windows [ par cowboy ] CowboyJ'aimerais savoir s'il existe un descriptif des commandes API pour windows en asm ( en francais si possible ) . J'aimerais trouv Ouvrir un fichier depuis l'explorer windows [ par Apinew ] ApinewSalut,J'ai cherché un peu partout et j'ai pas encore trouvé unmoyen de récupérer le chemin d'un fichier en faisant parexemple la commande ouvrir Passer en RING0 sous Windows XP ! [ par toto8966 ] Hello, Pour pouvoir placer du code en mode Ring0 jutilise jusqu'a présent le Driver TVicHW32. ( http://www.entechtaiwan.com/tvichw32.htm ) Ca fonction Registres windows [ par S2R ] Bonjour à tous, Est il possible de créer une clé dans la base de registre sans importer de dll?sinon comment fait-on pour importer une dll avec tasm?m


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.