Вопрос

Каковы основные шаги по компиляции приложения OpenGL с использованием ПЕРЕНАСЫЩЕНИЕ (OpenGL Utility Toolkit) в Visual C ++ Express Edition?

Это было полезно?

Решение

  1. Если у вас нет Visual C ++ Express Edition (VCEE), загрузите и установите VCEE.
  2. Установка Visual C++ Express Edition по умолчанию выполняется для платформы .Net.Нам нужно будет выполнить сборку для платформы Windows, поскольку OpenGL и GLUT еще не полностью поддерживаются в .Net.Для этого нам понадобится Microsoft Platform SDK.(Если вы используете более старую версию VCEE, загрузите и установите Пакет SDK для платформы Microsoft.Visual C ++ Express Edition необходимо будет настроить для сборки под платформу Windows.Все эти инструкции доступны здесь.)
  3. Если у вас нет ПЕРЕНАСЫЩЕНИЯ, скачайте и распакуйте архив Nate Robin's ПЕРЕНАСЫЩЕНИЕ порта Windows.
  4. Добавить перенасыщение.ч к вашему Платформа SDK/включает в себя/GL/ каталог
  5. Свяжите проект с перенасыщение библиотеки.(Перейдите в VCEE Свойства проекта -> Дополнительные каталоги компоновщика и добавьте каталог, в котором есть перенасыщение библиотеки.
  6. Добавить glut.dll к тому Windows/System32 каталог, чтобы все программы, использующие GLUT , могли найти его во время выполнения.

Ваша программа, использующая GLUT или OpenGL, теперь должна скомпилироваться под Visual C ++ Express Edition.

Другие советы

Порт ПЕРЕНАСЫЩЕНИЯ на сайте Нейта Робина датирован 2001 годом и имеет некоторые несовместимости с более поздними версиями Visual Studio (.NET 2003 и выше).Несовместимость проявляется в виде ошибок, связанных с переопределением exit().Если вы видите эту ошибку, есть два возможных решения:

  1. Замените exit() прототип в glut.h с тем, кто в твоем stdlib.h так, чтобы они совпадали.Это, вероятно, лучшее решение.
  2. Более простое решение заключается в том, чтобы #define GLUT_DISABLE_ATEXIT_HACK перед тобой #include <gl/glut.h> в вашей программе.

(Причитающийся кредит:Первоначально я видел этот совет на Веб-сайт службы поддержки TAMU.)

Я сам использую подход № 1 с тех пор, как вышел .NET 2003, и использовал тот же модифицированный glut.h с VC++ 2003, VC++ 2005 и VC++ 2008.

Вот разница для перенасыщения.h, который я использую, выполняет # 1 (но в соответствующем #ifdef blocks так что он по-прежнему работает со старыми версиями Visual Studio):

--- c:\naterobbins\glut.h       2000-12-13 00:22:52.000000000 +0900
+++ c:\updated\glut.h    2006-05-23 11:06:10.000000000 +0900
@@ -143,7 +143,12 @@

 #if defined(_WIN32)
 # ifndef GLUT_BUILDING_LIB
-extern _CRTIMP void __cdecl exit(int);
+/* extern _CRTIMP void __cdecl exit(int);  /* Changed for .NET */
+#  if _MSC_VER >= 1200
+extern _CRTIMP __declspec(noreturn) void __cdecl exit(int);
+#  else
+extern _CRTIMP void __cdecl exit(int);
+#  endif
 # endif
 #else
 /* non-Win32 case. */
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top