Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3024 connectés 

  FORUM HardWare.fr
  Programmation

  Comment faire tenir du code source sur plusieurs fichiers avec djgpp?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment faire tenir du code source sur plusieurs fichiers avec djgpp?

n°72007
Ace17
Posté le 13-11-2001 à 23:51:27  profilanswer
 

J'ai un fichier main.cpp et un fichier gfx.cpp
Le fichier gfx contient le code d'une fonction dont voici la déclaration :  
DrawPixel(int x, int y, char c);
A la compilation tout se passe bien, seulement quand je lie les fichiers il me dit qu'il ne peut pas trouver la fonction "__gxx_personality". Ok je suppose que ce doit etre comment le compilateur a nommé ma fonction DrawPixel, puisque quand je ne l'invoque plus dans main.cpp tout se compile nickel.
En fait en ouvrant gfx.obj généré par gcc je m'apercois que le nom DrawPixel a completement disparu; Y'a un truc qui ressemble, mais ca s'appelle __Z9DrawPixeliic. :ouch:  
Comment faire pour ne pas perdre, lors de la compilation, le nom des fonctions que l'on va exporter?
 
Voila comment je compile :  
 
gcc main.cpp -c -o bin\main.o
gcc gfx.cpp -c -o bin\gfx.o
ld --oformat binary -Ttext 1000 main.o gfx.o -o kernel.bin
 
Pitié aidez moi!!!  :cry:  :cry:  :cry:

mood
Publicité
Posté le 13-11-2001 à 23:51:27  profilanswer
 

n°72018
wpk
Posté le 14-11-2001 à 00:52:01  profilanswer
 

pkoi tu ne compiles pas simplement par
 
gcc -o kernel.bin main.cpp gfx.cpp
 
__Z9DrawPixeliic ca c'est normal c'est un nom decoré, à la fin par exemple t'as les types des parametres : iic pour int int char
c'est donc pas forcement sur le drawpixel qu'il y a un bleme...

n°72105
Ace17
Posté le 14-11-2001 à 13:03:20  profilanswer
 

Ben en fait si je compile pas par la commande "simple" c'est parce qu'en fait j'ai aussi un fichier en assembleur a ajouter dans le fichier binaire final...

n°72106
Ace17
Posté le 14-11-2001 à 13:07:12  profilanswer
 

D'ailleurs ca me fait la meme erreur avec ta commande  :sweat:

n°72126
Ace17
Posté le 14-11-2001 à 14:07:42  profilanswer
 

up please  :hello:

n°72256
Ace17
Posté le 14-11-2001 à 17:12:06  profilanswer
 

up

n°72290
Fork
Posté le 14-11-2001 à 20:22:19  profilanswer
 

Essayes ça pour le prototype de drawpixel dans main.c :
 
Extern DrawPixel(int, int, char);
 
Le mot clé "Extern" indique au compilateur que la fonction "DrawPixel" proviendra d'un autre fichier objet.

n°72313
Ace17
Posté le 14-11-2001 à 22:01:15  profilanswer
 

Non ca marche pas meme erreur...Par contre j'ai découvert un truc : mes fichiers ont pour extension cpp; Si je met c uniquement la ca marche. Le probleme c'est que moi c'est du c++ que je veux compiler plus tard


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Comment faire tenir du code source sur plusieurs fichiers avec djgpp?

 

Sujets relatifs
URGENT ! ! BTS - Maquer une image par le code [VB6]php et securite fichiers
code asci de return en c svp[FLA5]--[1/2HS] ::: Je le met ou mon code ?
[C++] Generer des fichiers d'erreursFichiers "TIF" et Visual Basic... HELP!!!!!!
flash5 inserer du code php dans flash5[C++ - MCF?] copie de fichiers avancée
Afficher plusieurs pages....[C++/VC++]Comment creer fenetre windows en code
Plus de sujets relatifs à : Comment faire tenir du code source sur plusieurs fichiers avec djgpp?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)