Igl错误:架构x86_64的未定义符号

时间:2016-04-05 15:14:35

标签: c++ opengl glfw libigl

我开始在我的mac上使用C ++中的3d igl库。当我按照教程进行操作时,出现了错误。第一个例子,基本上只是读取一个OFF文件,工作正常。但第二个,使用igl :: viewer并不是。这是代码:

#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();
}

我只是进入终端:

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

其中path_to_libraries是我的库(igl,eigen,glfw)所在的个人文件夹。

终端返回了许多错误,如:

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

我还下载了Eigen和glfw。我所做的只是glfw源文件夹中的一个cmake。

Finalement,我应该补充一点,当我尝试使用Xcode时,在项目中添加框架OpenGL(我在互联网上找到的东西)删除了一半的错误(关于igl :: viewer :: OpenGL的那个)但是有些igl :: viewer :: Viewer仍然存在。

有没有人有任何线索?

1 个答案:

答案 0 :(得分:5)

根据GLFW's docs,您很可能需要链接一些OS X的框架,并添加

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

应该解决你的问题。