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

 


Dernière réponse
Sujet : Comment faire tenir du code source sur plusieurs fichiers avec djgpp?
Ace17 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

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Ace17 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
Fork 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.
Ace17 up
Ace17 up please  :hello:
Ace17 D'ailleurs ca me fait la meme erreur avec ta commande  :sweat:
Ace17 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...
wpk 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...
Ace17 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:

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