A voir également:
- Error LNK2019 visual studio C++
- Microsoft visual c++ runtime - Guide
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Visual paradigm - Télécharger - Gestion de données
- Obs studio windows 7 - Télécharger - TV & Vidéo
- Visual basic - Télécharger - Langages
5 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
13 nov. 2010 à 19:12
13 nov. 2010 à 19:12
En gros tu as quelque part dans ton code un appel à une fontion que tu as déclarée mais non implémentée.
Exemple :
Aide toi du message d'erreur et cherche dans ton code, où se trouvent les appels aux fonctions qui posent problème et regarde où est l'implémentation manquante (probablement dans un header que tu n'as pas inclus au projet)
Exemple :
void maFonction(); // déclarée mais jamais implémentée int main() { maFonction(); // error LNK2019: symbole externe non résolu // "void __cdecl maFonction(void)" (?maFonction@@YAXXZ) // référencé dans la fonction _main return 0; }
Aide toi du message d'erreur et cherche dans ton code, où se trouvent les appels aux fonctions qui posent problème et regarde où est l'implémentation manquante (probablement dans un header que tu n'as pas inclus au projet)
merci, mai enfaite toutes les fonctions que j'utilise sont définies dans le meme fichier source, et elle sont toutes appellées aprés leurs definitions.
je ne suis pas vraiment sur de ce que tu veux dire par inclure des header dans mon projet, mai si tu parle des include , je fai appel à 3 lib :
#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>
je ne suis pas vraiment sur de ce que tu veux dire par inclure des header dans mon projet, mai si tu parle des include , je fai appel à 3 lib :
#include <windows.h>
#include <GL\gl.h>
#include <GL\glu.h>
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 13/11/2010 à 19:28
Modifié par KX le 13/11/2010 à 19:28
Mais il n'est pas exclu que "GL\gl.h" et "GL\glu.h" fassent juste les déclarations sans implémenter !
Pour commencer, regarde la 1ère erreur :
Dans le fichier doly.cpp, tu as une fonction void MyMaterial(unsigned int,float *,float) qui appelle glMaterialfv. Regarde où est déclarée MyMaterial (probablement dans un des headers GL), tu verras qu'elle n'est pas implémentée !
Pour commencer, regarde la 1ère erreur :
Erreur 1 error LNK2019: symbole externe non résolu __imp__glMaterialfv@12 référencé dans la fonction "void __cdecl MyMaterial(unsigned int,float *,float)" (?MyMaterial@@YAXIPAMM@Z) doly.obj dolph
Dans le fichier doly.cpp, tu as une fonction void MyMaterial(unsigned int,float *,float) qui appelle glMaterialfv. Regarde où est déclarée MyMaterial (probablement dans un des headers GL), tu verras qu'elle n'est pas implémentée !
je pense que ce n'est pas le cas
bon voila la partie de mon fichier source qui contient les declarations des fonctions:
void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha)
{
GLfloat d[4];
d[0]=f[0];
d[1]=f[1];
d[2]=f[2];
d[3]=alpha;
glMaterialfv (GL_FRONT_AND_BACK,mode,d);
}
/*
* SelectMaterial uses OpenGL commands to define facet colors.
*
* Returns:
* Nothing
*/
void SelectMaterial(int i)
{
//
// Define the reflective properties of the 3D Object faces.
//
glEnd();
GLfloat alpha=materials[i].alpha;
MyMaterial (GL_AMBIENT, materials[i].ambient,alpha);
MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha);
MyMaterial (GL_SPECULAR, materials[i].specular,alpha);
MyMaterial (GL_EMISSION, materials[i].emission,alpha);
glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp);
glBegin(GL_TRIANGLES);
};
int main( int argc, char *argv[])
{
int i;
int j;
GLint lid=glGenLists(1);
int mcount=0;
int mindex=0;
glNewList(lid, GL_COMPILE);
glBegin (GL_TRIANGLES);
for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++)
{
if(!mcount)
{
SelectMaterial(material_ref[mindex][0]);
mcount=material_ref[mindex][1];
mindex++;
}
mcount--;
for(j=0;j<3;j++)
{
int vi=face_indicies[i][j];
int ni=face_indicies[i][j+3];//Normal index
int ti=face_indicies[i][j+6];//Texture index
glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]);
glTexCoord2f(textures[ti][0],textures[ti][1]);
glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
}
}
glEnd ();
glEndList();
return 0;
}
peut etre que ca eclaircie un peu le probleme ...
bon voila la partie de mon fichier source qui contient les declarations des fonctions:
void MyMaterial(GLenum mode,GLfloat *f,GLfloat alpha)
{
GLfloat d[4];
d[0]=f[0];
d[1]=f[1];
d[2]=f[2];
d[3]=alpha;
glMaterialfv (GL_FRONT_AND_BACK,mode,d);
}
/*
* SelectMaterial uses OpenGL commands to define facet colors.
*
* Returns:
* Nothing
*/
void SelectMaterial(int i)
{
//
// Define the reflective properties of the 3D Object faces.
//
glEnd();
GLfloat alpha=materials[i].alpha;
MyMaterial (GL_AMBIENT, materials[i].ambient,alpha);
MyMaterial (GL_DIFFUSE, materials[i].diffuse,alpha);
MyMaterial (GL_SPECULAR, materials[i].specular,alpha);
MyMaterial (GL_EMISSION, materials[i].emission,alpha);
glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp);
glBegin(GL_TRIANGLES);
};
int main( int argc, char *argv[])
{
int i;
int j;
GLint lid=glGenLists(1);
int mcount=0;
int mindex=0;
glNewList(lid, GL_COMPILE);
glBegin (GL_TRIANGLES);
for(i=0;i<sizeof(face_indicies)/sizeof(face_indicies[0]);i++)
{
if(!mcount)
{
SelectMaterial(material_ref[mindex][0]);
mcount=material_ref[mindex][1];
mindex++;
}
mcount--;
for(j=0;j<3;j++)
{
int vi=face_indicies[i][j];
int ni=face_indicies[i][j+3];//Normal index
int ti=face_indicies[i][j+6];//Texture index
glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]);
glTexCoord2f(textures[ti][0],textures[ti][1]);
glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
}
}
glEnd ();
glEndList();
return 0;
}
peut etre que ca eclaircie un peu le probleme ...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 13/11/2010 à 19:49
Modifié par KX le 13/11/2010 à 19:49
Il n'est cependant pas évident, que les fonctions suivantes soient implémentés quelque part :
Regarde dans tes headers "GL\gl.h" et "GL\glu.h" les lignes correspondantes à ces fonctions.
Il n'y aura pas d'implémentation (ce n'est pas le but d'un header).
Il te faut les fichiers d'implémentation ("gl.c" et "glu.c" ou éventuellement "gl.a" et "glu.a")
glMaterialfv (GL_FRONT_AND_BACK,mode,d); glMaterialf (GL_FRONT_AND_BACK,GL_SHININESS,materials[i].phExp); glBegin(GL_TRIANGLES); GLint lid=glGenLists(1); glNewList(lid, GL_COMPILE); glBegin (GL_TRIANGLES); glNormal3f (normals[ni][0],normals[ni][1],normals[ni][2]); glTexCoord2f(textures[ti][0],textures[ti][1]); glVertex3f (vertices[vi][0],vertices[vi][1],vertices[vi][2]);
Regarde dans tes headers "GL\gl.h" et "GL\glu.h" les lignes correspondantes à ces fonctions.
Il n'y aura pas d'implémentation (ce n'est pas le but d'un header).
Il te faut les fichiers d'implémentation ("gl.c" et "glu.c" ou éventuellement "gl.a" et "glu.a")
c'est bon merci , j'ai resolu le probleme des erreurs "LNK2019",
il manquait un t dans le #include<GL\glut.h> :D:D
maintenant j'ai un autre petit probleme ... c'est que le programme n'affiche aucun resultat .. juste une fenetre console qui disparait dans qq secondes .
mai bon merci en ts cas ^^.
il manquait un t dans le #include<GL\glut.h> :D:D
maintenant j'ai un autre petit probleme ... c'est que le programme n'affiche aucun resultat .. juste une fenetre console qui disparait dans qq secondes .
mai bon merci en ts cas ^^.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
13 nov. 2010 à 19:51
13 nov. 2010 à 19:51
rajoute system("PAUSE"); avant return 0; dans ton main
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca marche avec system("PAUSE"); pour arreter l'affichage de la fenetre console ...
mai ce n'est pas vraiment ce qui m'interesse . normalement c'est une fenetre contenant l'objet 3D dessiné qui doi apparaitre .. donc je pense que je doi essayer de bien comprendre le code pour voir ce qui ne marche pas .
cordialement .
mai ce n'est pas vraiment ce qui m'interesse . normalement c'est une fenetre contenant l'objet 3D dessiné qui doi apparaitre .. donc je pense que je doi essayer de bien comprendre le code pour voir ce qui ne marche pas .
cordialement .