Ошибка Igl: неопределенные символы для архитектуры x86_64

Я начинаю использовать библиотеку igl для 3d в C++, на моем Mac. Поскольку я следовал за учебником, появилась ошибка. Первый пример, в основном просто чтение файла 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. Все, что я сделал, это cmake в исходной папке glfw.

В завершение, я должен добавить, что когда я пытался с Xcode, добавление в проект фреймворка OpenGL (что я нашел в интернете) удалило половину ошибок (ту, что касается igl::viewer::OpenGL), но некоторые igl::viewer:: Зрители остаются.

У кого-нибудь есть подсказка?

1 ответ

Решение

Скорее всего, вам нужно будет связать несколько платформ OS X, в соответствии с документами GLFW, добавив

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

должен исправить вашу проблему.

Другие вопросы по тегам