2017-01-14 1 views
0

pendant que je compile mon code opengl je suis confronté à cette erreur.Comment faire pour supprimer ce?erreur non défini référence à `FTExtrudeFont :: FTExtrudeFont (char const *) '

all: sample2D 

sample2D: Sample_GL3_2D.cpp glad.c 
     g++ -o sample2D Sample_GL3_2D.cpp glad.c -lGL -lglfw -ldl -std=c++11 

clean: 
     rm sample2D 

c'est mon contenu de Makefile et mon code pour rendre la police

const char* fontfile = "Monaco.ttf"; 
GL3Font.font = new FTExtrudeFont(fontfile); // 3D extrude style rendering 

if(GL3Font.font->Error()) 
{ 
    cout << "Error: Could not load font `" << fontfile << "'" << endl; 
    glfwTerminate(); 
    exit(EXIT_FAILURE); 
} 

// Create and compile our GLSL program from the font shaders 
fontProgramID = LoadShaders("fontrender.vert", "fontrender.frag"); 
GLint fontVertexCoordAttrib, fontVertexNormalAttrib, fontVertexOffsetUniform; 
fontVertexCoordAttrib = glGetAttribLocation(fontProgramID, "vertexPosition"); 
fontVertexNormalAttrib = glGetAttribLocation(fontProgramID, "vertexNormal"); 
fontVertexOffsetUniform = glGetUniformLocation(fontProgramID, "pen"); 
GL3Font.fontMatrixID = glGetUniformLocation(fontProgramID, "MVP"); 
GL3Font.fontColorID = glGetUniformLocation(fontProgramID, "fontColor"); 

GL3Font.font->ShaderLocations(fontVertexCoordAttrib, fontVertexNormalAttrib, fontVertexOffsetUniform); 
GL3Font.font->FaceSize(1); 
GL3Font.font->Depth(0); 
GL3Font.font->Outset(0, 0); 
GL3Font.font->CharMap(ft_encoding_unicode); 

Répondre

0

Looking up FTExtrudeFont il semble être une fonction dans la bibliothèque ftgl http://ftgl.sourceforge.net/docs/html/classFTExtrudeFont.html mais vous n'êtes pas liez que bibliothèque. Donc, vous avez probablement besoin de -lftgl (en supposant que c'est le nom de la bibliothèque). Selon l'endroit où la bibliothèque est installée (ou si vous venez de la construire vous-même), vous devrez peut-être indiquer à l'éditeur de liens où rechercher la bibliothèque en utilisant l'indicateur -L, par exemple votre ligne de compilation sera

g++ -o sample2D Sample_GL3_2D.cpp glad.c -L <path-to-dir-with-ftgl-library> -lftgl -lglfw -lGL -ldl -std=c++11 
+0

thankyou mais maintenant je suis confronté à une erreur 'symbole erreur de recherche: /usr/local/lib/libftgl.so.2: symbole non défini: glad_glGenTextures' – nike

+0

comprenez-vous les concepts de symboles, libs et comment ils sont résolu? Sinon, je suggère de lire dessus. Les symboles pour une lib doivent être résolus par un code lié après, par ex. glfw utilise GL donc doit être lié apparaître avant lui. La ligne g ++ que vous avez est en fait 2 étapes; compilez le code source, puis liez les fichiers objet. TBH Je n'ai jamais essayé de résoudre une dépendance de lib avec un fichier source donc je suivrais le modèle standard de compilation de glad.c dans une bibliothèque, puis je l'associerais après ftgl. –