Как построить 102 примера учебника по либигли в Visual C ++?

В настоящее время я использую Visual C ++ 10.0 (2010) на 32-битной ОС win7.

Когда я пытался построить основные примеры либигль гитхуб учебные пособия:
учебники по либигле

Следующий код установки работает нормально:

#include <igl/cotmatrix.h>
#include <Eigen/Dense>
#include <Eigen/Sparse>
#include <iostream>
int main()
{
Eigen::MatrixXd V(4,2);
V<<0,0,
1,0,
1,1,
0,1;
Eigen::MatrixXi F(2,3);
F<<0,1,2,
0,2,3;
Eigen::SparseMatrix<double> L;
igl::cotmatrix(V,F,L);
std::cout<<"Hello, mesh: "<<std::endl<<L*V<<std::endl;
return 0;
}

что указывает на то, что по учебным пособиям проблем практически нет.

Тем не менее, я не могу получить учебник 102 через:

#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("../shared/bunny.off", V, F);

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

После получения серии сообщений об ошибках сборки, в которых отсутствуют некоторые специальные заголовки, а затем добавлен соответствующий каталог, содержащий заголовок, во включающий каталог VS, все еще отсутствует какой-либо заголовок, который не может быть найден на моем компьютере.

За исключением каталога include, который требуется для учебника:

x:\Program\libigl-master\include; $(IncludePath);

Я уже добавил другие следующим образом:

x:\Program\libigl-master\external\glfw\include;
x:\Program\libigl-master\external\AntTweakBar\src;
x:\Program\libigl-master\external\AntTweakBar\include;
x:\Program\libigl-master\external\glew\include;

Сообщение об ошибке все еще там:

x: \ Program \ libigl-master \ external \ glfw \ include \ glfw \ glfw3.h (163): фатальная ошибка C1083: невозможно открыть файл включения: ‘GL / glcorearb.h’: такого файла или каталога нет
1>

И я добавил:

x:\Program\libigl-master\external\glfw\include\GLFW
D:\Program\libigl-master\external\glfw\include\

и получил:

x: \ program \ libigl-master \ external \ glfw \ include \ glfw \ glfw3.h (163): фатальная ошибка C1083: не удается открыть файл включения: ‘GL / glcorearb.h’: такого файла или директо нет

который не существует в моем компьютере.

Что я должен делать?

1

Решение

У меня была точно такая же проблема, и дело в том, что простое добавление их путей включения не заставит это работать — как они и сказали. Это потому, что LIBIGL сама по себе является вспомогательной библиотекой, которая помогает манипулировать трехмерными фигурами, но их примеры используют гораздо больше (их матричная система происходит от собственный, их графическая система использует GLFW + GLEW, среди многих других).

Но вы можете получить большинство примеров работы MSVS с настройкой основных библиотек. Загрузите следующее:

  1. собственный: Это для базовой матричной / векторной арифметики и т. Д.
  2. GLFW: Используется для создания и обработки окон для OpenGL.
  3. GLEW: Эта библиотека имеет фактические привязки функций OpenGL для использования функций OpenGL.

Обратите внимание, что эти библиотеки необходимы для компиляции примеров, потому что, когда примеры создавались, создатели настраивали среду с ними (в противном случае им пришлось бы вручную кодировать обработку этих окон OpenGL и Windows / Linux и т. Д. В случае, если вы ‘ заинтересован, это то, на что похож «чистый OpenGL» код). Так что вам нужно сделать: установить среду для этих библиотек. Вот как это сделать:

После создания пустого проекта в MSVS перейдите на Обозреватель решений> щелкните правой кнопкой мыши проект> Свойства. Вы открыли Страницы собственности, где все конфигурации проекта сделаны. Нам нужно указать 3 вещи: где компилятор может найти заголовки, библиотеки, которые мы используем, и где он может найти эти библиотеки.

Сначала мы устанавливаем заголовки: в левом меню разверните C / C ++> Общее, и справа выберите Дополнительные каталоги включения, нажмите на стрелку вниз и нажмите изменить. Откроется окно с пустыми полями, щелкните их дважды добавлять предметы. Добавьте собственный путь к заголовку, путь к папке libigl, путь к папке glew и путь к папке glfw в каждой строке (это очень запутанный интерфейс).

Хорошо, теперь нам нужно указать, какие библиотеки мы будем использовать. Опять же, в левом меню, перейдите к Линкер> Вход> Дополнительные зависимости (почти такой же интерфейс). добавлять glew32s.lib, glfw3.lib а также opengl32.lib (по одному на каждую строку). Наконец, укажите где эти библиотеки есть. Идти к Linker> General> Каталоги дополнительных библиотек, и укажите путь к загруженным файлам glew32s.lib и glfw3.lib. (что-то вроде «C: \ Users … \ glfw-3.2.1.bin.WIN32 \ Lib-vc2010») — убедитесь, что вы указываете путь к нужному компилятору — например, если вы используете MSVS 32 bit 2010, вам следует выбрать vc2010, а не mingw-64.

Если вы создадите исходный файл в проекте, используя исходный код учебника 2012, он должен скомпилироваться, но вам, возможно, придется указать пути к DLL например, OpenGL32.dll, если его еще нет в системном пути.

Наконец, последнее, что может пойти не так, связано с тем, что называется Библиотека времени исполнения — Оно в C / C ++> Генерация кода> Библиотека времени выполнения. По сути, он описывает метод для компиляции кода, и каждая используемая нами библиотека была скомпилирована по-разному, поэтому мы можем получать ошибки … Честно говоря, я мало что знаю об этом, я просто знаю, что моя не была работая со стандартным, поэтому я изменил на / MD и это сработало. Пойди разберись.

PS: Вам также может понадобиться обновить видеокарту, чтобы OpenGL работал.

1

Другие решения

Единственное, что сработало для меня, — это создание визуального студийного проекта с помощью cmake-gui. Вот что я сделал:

  • Скачайте и установите cmake https://cmake.org/download/.
  • Откройте cmake-gui.
  • В разделе «где находится исходный код» укажите путь к учебникам: … / libigl / tutorial.
  • В «где собрать двоичные файлы» поместите все, что вам нравится (я использовал … / libigl / tutorial / build).
  • Вы также увидите кучу вариантов в красном. Выберите / отмените выбор по желанию. Мне пришлось отменить выбор Matlab, так как он не мог найти его по какой-то причине.
  • Сконфигурируйте и сгенерируйте (когда вас спросят, выберите версию Visual Studio, которую вы используете).
  • Теперь у вас должно быть решение Visual Studio в папке сборки. Откройте и постройте.
1

У меня была та же проблема в Visual Studio 2013. И файл заголовка, который я пытался использовать, был igl / sort.h, который не может быть открыт.

в руководство , Они сказали

Просто добавьте libigl / include в ваш путь включения и включите соответствующие заголовки.

И путь включения, на который они ссылались здесь, на самом деле является каталогами включения, которые можно найти в проекте> свойства> Свойства конфигурации> Каталоги VC ++, а не в дополнительных каталогах включения.

0
По вопросам рекламы [email protected]