begin process at 2012 02 11 04:30:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de compilation flat binary ou plain binary sur windows


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de compilation flat binary ou plain binary sur windows

mercredi 20 juillet 2005 à 18:38:56 | 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 à 17:43:48 | Re : Probleme de compilation flat binary ou plain binary sur windows

Funto66

"Pourquoi dois je passer "_main"  au lieu de "main" comme point d'entrée ?"

Ben sous Windows la convention C (la __cdecl quoi) veut que les noms des fonctions et des variables globales/statiques soient précédés d'un underscore...

Pour ton problème c'est curieux...peut-être que la comparaison des fichiers assembleurs générés avec l'option -S pourrait t'aider à trouver?

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
jeudi 21 juillet 2005 à 23:10:37 | 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
vendredi 22 juillet 2005 à 12:11:44 | Re : Probleme de compilation flat binary ou plain binary sur windows

Funto66

Wah c'est cool que tu détailles problème et solution, si seulement tout le monde faisait ça ^^

Peitte remarque, dans ton code source du début, tu fais un int main() qui n'a pas de return 0, c'est mâl ;)

Le -S du objcopy peut aussi être remplacé par un -s dans ld non?

PS : Tout ça c'est pour un projet d'OS?

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
vendredi 22 juillet 2005 à 12:14:06 | Re : Probleme de compilation flat binary ou plain binary sur windows

Funto66

"Bienvenue sur le site Hexatronic,
Un site dédié à l'électronique orienté robotique et programmation.
Vous y trouverez une partie avec des conseils et explications techniques ainsi qu'une partie avec mes réalisations personnelles."

Bon jcrois que j'ai compris l'intérêt pour toi de faire du flat binary :D

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
mardi 26 juillet 2005 à 13:13:53 | Re : Probleme de compilation flat binary ou plain binary sur windows

hexanium

Salut Funto66,

En effet pour le return dans le main, c'est pas tres jolie mais c'est plus facile a regarder le code C compilé puis désassembler apres. C'est un code tres simple dont le but est d'analyser le code desassemblé. Mais en effet c'est pas tres propre sans return.

Pour le 'S' en effet sur objcopy ou ld cela a le meme effet.

En enfin, en effet c'est un petit OS. :D !

Je le développais sur Linux mais pendant les vacances j'avais pas de Linux sous la main, un XP familliale c tout !
J'ai pas mal géléré avant de trouver la methode de compile flat sous windows.

Merci pour tous les coup de paluches et remarques.

Hexanium



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


Répondre à ce message

Sujets en rapport avec ce message

Comment je pe faire des progamme e windows en c++?? [ par ishida_67 ] je sais faire des programmes en Dos mais si je tape le meme programme pour faire un programme en windows sa ne marche pas donc j'imagine bien qu'il y G++ [ par tekila_bandita ] Bonjour,Ben enfaite je debute en c++ mais j'ai un probleme :Je n'arrive pas à compiler un programme le plus simpliste du monde.Je crée un classe fract QT3 / GTK [ par piwee ] Salut, j'aimerai développer des applis en C (Linux/Windows) avec interface graphique. Mais avant de me lancer dans l'apprentissage, j'aimerai savoir STL binary search [ par thefakir ] bonsoir, Bonsoir, Voila je suis sur un petit truc de C++ qui calcule une somme avec :cout << std::ac cherche livre api windows [ par nicooooo1 ] Bonjour, je cherche un livre traitant des api windows( injection Dll.... ), je n'en trouve pas dans le commerce !!!. Bloquer sortie de programme [ par Galmiza ] Bonjour, Je dois réaliser un programme qui devra tourner sur de vieux ordinateurs (33 Mhz voire moins) sans souris (milieu public). Les systèmes d'e Comment récupérer les propriétés windows (titre, auteur) d'un fichier [ par Seraphineppdm ] Bonjour à tous, Je travaille actuellement sur borland C++. Je cherche à récupérer les propriétés windows (titre, auteur) d'un fichier. J'ai essayé d' Fenetre Windows [ par wxccxw ] hello world :) je suis en train de developper mon prog en API windows et tout a coup, j'ai quelque souci :) 1: Comment Detruire un element ? exemple rafraichissement d'une fenetre en API windows [ par poulpixx ] salut a tousJ'aimerai savoir comment on peut faire pour demander a une fenetre de rafraichir sa zone client en API windows C++.par exemple quand on y equivalence de bibliotheque de fonctions .h sous linux et windows [ par slyfer07 ] J'ai un probleme avec un fichier .c qui a été développé avec un compilateur sous linux et qui utilise certains header tel que qui n'est pas pris en c


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales