2017-01-14 5 views
0

私は自分のopenglコードをコンパイルしていますが、これを削除するにはこのerror.howに直面していますか?エラーが未定義の `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 

これはMakefileの の私の内容と

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); 

答えて

0

は、あなたがそれをリンクされていませんが、ftglライブラリ http://ftgl.sourceforge.net/docs/html/classFTExtrudeFont.html 内の関数であるように思わFTExtrudeFontを探し、フォントをレンダリングするための私のコードですとしょうかん。ですから、おそらく-lftgl(ライブラリの名前であると仮定して)を必要とします。

ライブラリがインストールされている場所(または自分でビルドしたばかりの場合)によっては、-Lフラグを使用してライブラリを探す場所をリンカに指示する必要があります。つまり、コンパイル行は

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

ありがとう今私は、エラー 'シンボル検索エラー直面しています:/usr/local/lib/libftgl.so.2:未定義のシンボル:glad_glGenTextures' – nike

+0

はあなた、シンボルの概念を理解LIBS、彼らはどのようにか解決されましたか?そうでなければ、私はそれを読んでお勧めします。 libのシンボルは、後にリンクされたコードで解決する必要があります。 glfwはGLを使用するので、リンクする必要があります。あなたが持っているg ++ラインは、実際には2つのステージです。ソースコードをコンパイルし、オブジェクトファイルをリンクします。 TBH私は、ソースファイルでlib依存関係を解決しようとしたことがありませんので、ライブラリにglad.cをコンパイルし、ftglの後にリンクする標準パターンに従います。 –

関連する問題