2016-04-05 18 views
1

私のMacでは、iglライブラリを3dのC++で使用し始めています。チュートリアルに従うと、エラーが表示されました。最初の例では、基本的にOFFファイルを読むだけで正常に動作します。しかし、2番目の方法は、igl :: viewerを使用しない方法です。ここでは、コードは次のようになります。Iglエラー:アーキテクチャx86_64の未定義シンボル

#include <igl/readOFF.h> 
#include <igl/viewer/Viewer.h> 

Eigen::MatrixXd V; 
Eigen::MatrixXi F; 

int main(int argc, char *argv[]) 
{ 
    // Load a mesh in OFF format 
    igl::readOFF("/bunny.off", V, F); 

    // Plot the mesh 
    igl::viewer::Viewer viewer; 
    viewer.data.set_mesh(V, F); 
    viewer.launch(); 
} 

と私は、端末に入力します:

path_to_librariesは(IGL、固有、GLFW)私のライブラリが残っている個人用フォルダです
g++ -std=c++11 -I path_to_librairies/eigen-eigen-07105f7124f9/ -I path_to_librairies/libigl/include/ -I path_to_libraries/glfw-3.1.2/include/ main.cpp -o Test 

。私も固有とGLFWをダウンロード

Undefined symbols for architecture x86_64: 
    "_glActiveTexture", referenced from: 
     igl::viewer::OpenGL_state::bind_mesh() in main-805320.o 

と端末のようなエラーの数十を返します。私がしたのは、glfwソースフォルダのcmakeです。

最終的に、Xcodeで試したときに、フレームワークのOpenGL(インターネット上で見つけたもの)をプロジェクトに追加すると、エラーの半分(igl :: viewer :: OpenGLに関するもの) igl :: viewer :: Viewerは残っています。

誰か手掛かりがありますか?

+0

OpenGLライブラリにリンクしていませんか?私はこれがOSX(Linux/Windowsのほうが多い)でどのように行われているのか分かりませんが、それが私が始める場所です。幸運 – Andreas

答えて

2

あなたが最も可能性の高いあなたの問題を解決する必要があり

-lglfw -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo 

を追加し、GLFW's docsによると、OS Xのフレームワークのいくつかにリンクする必要があります。

+0

それは助けてくれてありがとう! アーキテクチャx86_64の定義されていないシンボル: "_glfwCreateWindow"、参照元: igl:viewer :: viewer :: launch_something()のようなものです。 :viewer :: viewer :: launch_init(bool、bool)in main.o –

+0

あなたはGLFWライブラリ自体をリンクしていません。私がリンクしているドキュメントを見て、 '-lglfw'フラグを付けてGLFWをリンクしてください。また、ライブラリを探す場所をコンパイラに伝えるために、 '-L'フラグを追加する必要があります。 – Leandros

+0

それは最終的にうまくいくよ! (私はmakeの後にglfwをインストールしなければならなかったが、私は最初にやっていなかった)。どうもありがとうございました。 –

関連する問題