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

  FORUM HardWare.fr
  Programmation

  [DJGPP] J'ai jamais vu ca!! (undefined reference)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DJGPP] J'ai jamais vu ca!! (undefined reference)

n°72280
Ace17
Posté le 14-11-2001 à 19:01:37  profilanswer
 

Voici le code source qui marche
 
void draw_pixel(int x, int y, char c)
{
 char* videomem = (char*)0xA0000;
 videomem[x+y*320] = c;
}
 
int main(void)
{
 draw_pixel(10, 10, 10);
 while(1);
}
 
Quelqu'un peut me dire pourquoi ce code la ne marche pas?
 
void draw_pixel(int x, int y, char c);
 
int main(void)
{
 draw_pixel(10, 10, 10);
 while(1);
}
 
void draw_pixel(int x, int y, char c)
{
 char* videomem = (char*)0xA0000;
 videomem[x+y*320] = c;
}
 
Le linker me dit :  
(.eh_frame+0x11):main.cpp: undefined reference to `___gxx_personality_v0'

mood
Publicité
Posté le 14-11-2001 à 19:01:37  profilanswer
 

n°72288
Fork
Posté le 14-11-2001 à 20:18:02  profilanswer
 

Essayes en n'écrivant que ça pour le prototype :
 
void draw_pixel(int, int, char);

n°72316
Ace17
Posté le 14-11-2001 à 22:08:19  profilanswer
 

Naaaaaaaaaaaan ............ meme erreur  :sweat:

n°72318
Ace17
Posté le 14-11-2001 à 22:09:49  profilanswer
 

Mais quand je change l'extension de mon fichier de cpp vers c la y'a plus d'erreur
Mais moi je veux programmer en C++ pas en C

n°72323
bjone
Insert booze to continue
Posté le 14-11-2001 à 22:30:59  profilanswer
 

c original ça alors :??:
 
et si tu changes des options de compilation ? (genre optimisations, expansion en ligne... .etc...)

n°72326
Ace17
Posté le 14-11-2001 à 22:43:44  profilanswer
 

Ben j'utilise djgpp et manifestement il décore les noms des fonctions quand il les met dans un fichier obj. Ca doit etre possible de désactiver ca! Ou alors, que le fichier ou on va référencer la fonction soit capable de retrouver la fonction dont le nom est décoré....
Malheureusement y'a aucune option concernant ca

n°72327
Ace17
Posté le 14-11-2001 à 22:44:19  profilanswer
 

Y'a quand meme bien quelqu'un sur HFR qui compile du code C++ répandu sur plusieurs avec DJGPP quand meme!

n°72342
wpk
Posté le 15-11-2001 à 00:30:11  profilanswer
 

si tu veux ke la decoration disparaisse, tu prefixe ta declaration de fonction par un zoli extern "C" (j'espere seulement ke c'est pas du MS specific :D vu ke sous win, j'utilise ke visual, les makefiles et la ligne de commande ca gonfle profond à la longue)
 
Exemple:
extern "C"
{
void  draw_pixel(int x, int y, char c);
}

n°72403
bjone
Insert booze to continue
Posté le 15-11-2001 à 10:56:45  profilanswer
 

oui, le extern "C" marche, mais ça enlève un _ devant. (je faisait ça ozi avec le watcomC pour mes routines en ASM)

n°72451
gilou
Modérateur
Modzilla
Posté le 15-11-2001 à 13:51:50  profilanswer
 

Le probleme est ici a mon avis:
 
>draw_pixel(10, 10, 10);
 
le compilo c++ en deduit que quelque part, tu vas definir une fonction draw_pixel(int, int, int) et de ce fait, il ne considere pas que ton proto precedent (ni la def de la fonction) correspond a cette fonction, car c'est un draw_pixel(int, int, char).
 
un draw_pixel(10, 10, (char) 10);
devrait resoudre le pb, non?
 
Notes que je vois pas a priori ce qui fait que celle qui marchait n' avait pas le meme probleme.
 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 15-11-2001 à 13:51:50  profilanswer
 

n°72561
Ace17
Posté le 15-11-2001 à 17:59:49  profilanswer
 

Ben c pas con, et j'y avais pensé
J'avais meme fait : draw_pixel((int)10, (int)10, (char)10);
ca marche pas non plus
je crois que je vais générer mes fichiers obj avec borland pour ensuite pouvoir les lier avec ld de djgpp (pour générer un fichier binaire)

n°72594
gilou
Modérateur
Modzilla
Posté le 15-11-2001 à 19:54:42  profilanswer
 

Ace17 a écrit a écrit :

Ben j'utilise djgpp et manifestement il décore les noms des fonctions quand il les met dans un fichier obj. Ca doit etre possible de désactiver ca! Ou alors, que le fichier ou on va référencer la fonction soit capable de retrouver la fonction dont le nom est décoré....
Malheureusement y'a aucune option concernant ca  




Comme tout compilo C++, c'est normal. mais si tous tes .obj ont ete compiles avec le meme compilo, et si ton linker est celui fourni avec ton compilo, ca ne devrait pas poser de probleme.
Par contre, vouloir linker des modules c++ compiles avec des compilos differents, c' est s' exposer aux pires problemes, et je sais de quoi je parle, car je m' escrime a faire ca pour un meme source entre gcc et les compilos natifs a 3 OS Unix (reeussi pour Solaris et HP-UX, ca merde encore pour Aix).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°72595
gilou
Modérateur
Modzilla
Posté le 15-11-2001 à 19:58:58  profilanswer
 

Notes que ca peut aussi etre un pb avec ta version de gcc, cf le lien suivant: http://archive.linuxfromscratch.or [...] /0798.html
J' ai teste ton source avec le compilo microsoft, il n' y a aucun pb. les deux versions passent sans erreur.
 
A+,

 

[edtdd]--Message édité par gilou--[/edtdd]


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°72600
gilou
Modérateur
Modzilla
Posté le 15-11-2001 à 20:06:38  profilanswer
 

Au fait,  
>int main(void)
mais ta fonction ne retourne pas de valeur.
Ca non plus, un compilo C++ ne devrait pas aimer.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°72636
Ace17
Posté le 15-11-2001 à 22:26:33  profilanswer
 

ouais ouais c'est encore autre chose ca
bon j'ai trouvé la combine : j'utilise le compilo ms et y'a plus de problemes; mais je garde le linker de djgpp


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

  [DJGPP] J'ai jamais vu ca!! (undefined reference)

 

Sujets relatifs
[DJGPP] Quelle commande pour lier des fichiers objets avec LD?Comment faire tenir du code source sur plusieurs fichiers avec djgpp?
[C++] Passage de référenceRéférence de bouquins html et c++...
Qu'est ce qu'une REFERENCE ?PHP / GD : "undefined function: imagecreate()"
[JAVA] Get reference???programmation djgpp
[PHP] Comment faire reference a un fichier php d'un autre site ???[JavaScript] : reference a une cellule d'un tableau d'une autre frame
Plus de sujets relatifs à : [DJGPP] J'ai jamais vu ca!! (undefined reference)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR