OpenGL + мезаструктура, 3D + MinGW

Я программирую приложения C++ на (Ubuntu) Linux и компилирую их в 2 операционных системы: исходно к Linux при помощи "g ++" (компилятор C++ GNU) и кросс-компилируют их к Windows при помощи "i386-mingw32-g ++" (кросс-компилятор C++ MinGW).

Теперь, я пытаюсь кросс-скомпилировать приложения "OpenGL" (от Linux до Windows) - для этого мне нужны некоторые файлы библиотеки OpenGL.
Как реализация OpenGL, я использую "Мезаструктуру 3D" библиотека с открытым исходным кодом. К счастью, предложения Ubuntu "предварительно скомпилировали" mesa3d библиотеки (libgl1-mesa-dev и libglu1-mesa-dev) для Linux, но к сожалению, нет никаких предварительно скомпилированных библиотек для использования с кросс-компилятором MinGW (таким образом версии Windows их) - таким образом, я "ДОЛЖЕН" вручную скомпилировать их "из источника" (который может быть загружен с домашней страницы http://www.mesa3d.org).

Но я понятия не имею, чтобы сделать это. В mesa3d исходном коде существуют некоторые документы, как создать библиотеки для некоторых определенных платформ - конкретно существует файл "README.MINGW32" readme.
Но только на первых строках существует некоторая команда

mingw32-make -f Makefile.mgw [OPTIONS...]

который я не могу выполнить, потому что я не имею, любой "mingw32-делает" программу установленной. Другим программным обеспечением я раньше создавал их с "классиком"

./configure -> make -> make install

процедура, но это не работает над mesa3d библиотеками.
Например, я также попробовал

./configure --host=i386-mingw32

и это было настроено хорошо, но после ввода

make

это бросило некоторую ошибку

error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.

и теперь я ПОТЕРЯН:-(.

Кто-либо знает, как создать mesa3d библиотеки для использования их с mingw32?

P.S.: И конечно, я не ХОЧУ не использовать Microsoft Visual Studio НИКОГДА:-). И также я хотел бы сделать все необходимые вещи создать среду OpenGL из Linux и использующий mingw32 для кросс-компиляции. Я надеюсь, что это возможно.

P.S.2: На странице http://www.mesa3d.org/systems.html там записан то использование, MinGW с 3D Мезаструктурой "удерживается от использования". Я нахожусь на правильном способе использовать его просто тот путь?

12
задан Petike 1 January 2010 в 19:52
поделиться

1 ответ

Нет необходимости компилировать Mesa3D для MinGW. MinGW включает в себя библиотеку GL; она просто не называется libGL.a или libGLU.a; вместо этого библиотеки называются libopengl32.a и libglu32.a. К сожалению, именно так Microsoft решила называть их под Windows на Visual Studio, поэтому и Windows, и GNU/Linux релиз MinGW решили включить библиотеки, названные выше.

Так что при перекрестной компиляции для Windows просто измените:

-lGL -lGLU

на

-lopengl32 -lglu32

Mesa3D на GNU/Linux - это на самом деле название для libre реализации OpenGL. Это происходит потому, что OpenGL является товарным знаком, а политика SGI не позволяла никому использовать это название, не заплатив огромную сумму денег. Несмотря на это, SGI предоставила автору, Брайану Полу, копию тестирующего набора.

Mesa3D работает на большинстве платформ с родной реализацией OpenGL, известной как библиотека "проверки здравомыслия" программного обеспечения с эмуляцией многочисленных возможностей, доступных только для высокоаппаратного обеспечения. Но в GNU/Linux гораздо важнее то, что называется DRI или прямой интерфейс рендеринга. Это реальная вещь, аппаратное ускорение и все такое. Эта библиотека также называется Mesa3D; на самом деле обеспечение DRI является частью Mesa3D, а также X11 и ядра.

Mesa3D предоставляет libre совместимые с OpenGL заголовки на GNU/Linux и других свободных платформах.

Summary: Mesa3D - это название для реализации OpenGL в GNU/Linux, поскольку это название защищено товарными знаками. Эта библиотека включает в себя отличную, функциональную, правильную и относительно быструю программную реализацию. Она также включает интерфейс прямого рендеринга для аппаратного ускорения.

16
ответ дан 2 December 2019 в 20:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: