OpenGL + Mesa 3D + MinGW

Ich programmiere C++ - Anwendungen auf (Ubuntu) Linux und kompilieren Sie Sie, um 2 Betriebssysteme: nativ zu Linux mit "g++" (GNU C++ compiler) und cross-kompilieren Sie Sie zu Windows mit "i386-mingw32-g++" (MinGW C++ - cross-compiler).

Nun, ich bin versucht, um cross-kompilieren "OpenGL" - Anwendungen (Linux, Windows) - dafür brauche ich einige OpenGL-Bibliothek-Dateien.

Als eine Implementierung von OpenGL, die ich verwenden "Mesa 3D" open-source-Bibliothek. Zum Glück, Ubuntu bietet "vorkompilierte" mesa3d Bibliotheken (libgl1-mesa-dev und libglu1-mesa-dev) für Linux, aber leider gibt es keine vorkompilierte Bibliotheken für die Verwendung mit MinGW-cross-compiler (also Windows-Versionen davon) - also ich "MUSS" von Hand compilieren "von der Quelle" (Download von http://www.mesa3d.org homepage).

Aber ich habe keine Idee, das zu tun. In der mesa3d-source-code, gibt es einige Dokumente, wie man die Bibliotheken für bestimmte Plattformen - speziell dort ist die "README-Datei.MINGW32" readme-Datei.

Aber nur auf den ersten Zeilen gibt es irgendein Befehl

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

die kann ich nicht ausführen, weil ich habe keine "mingw32-make" - Programm installiert. Durch eine andere Software, die ich verwendet, um zu bauen Sie mit der "klassischen"

./configure -> make -> make install

Verfahren, aber dies ist nicht arbeiten auf mesa3d Bibliotheken.

Zum Beispiel habe ich auch versucht

./configure --host=i386-mingw32

ist und dafür konfiguriert ist, ok, aber nach der Eingabe

make

er warf einige Fehler

error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.

und nun bin ich VERLOREN 🙁 .

Also weiß jemand, wie man die mesa3d-Bibliotheken für die Verwendung mit mingw32?

P. S.: Und natürlich ich WILL NICHT Microsoft Visual Studio NIE MEHR 🙂 . Und auch ich möchte alles tun, die erforderlichen Dinge zu bauen OpenGL-Umgebung von Linux und mit mingw32 cross-kompilieren. Ich hoffe, es ist möglich.

P. S. 2: Auf http://www.mesa3d.org/systems.html Seite dort steht geschrieben, dass unter Verwendung von MinGW mit Mesa 3D ist "deprecated". Ich bin auf dem richtigen Weg, um es einfach so?

  • Einfach Fragen... OpenGL ist in der Regel verwendet, um Zugriff auf hardware-beschleunigte 3D. Durch die Verwendung von mesa auf windows, Sie greifen auf eine software-Implementierung auf windows. Ist das wirklich das, was Sie wollen ? Ansonsten müssen Sie nur verwenden Sie den in windows bereitgestellten opengl-Bibliotheken.
  • Mein primäres Ziel ist "systemunabhängig" beim schreiben von c++ - code -> daher dachte ich, dass mit einem cross-Plattform-Bibliothek ("mesa3d" in diesem Fall) ist ein guter Weg, das zu erreichen, ich weiß nicht, vielleicht bin ich falsch. Also sollte ich verstehe es so, dass in "jeder Windows" gibt es einige "Bibliotheken", die OpenGL-und wenn ich Schreibe einige OpenGL-code auf meinem Linux-Rechner, ich brauche nicht zu verbreiten, ohne zusätzliche OpenGL-Bibliotheken mit meinem Programm? Wenn ja, welche Bibliotheken sind, dass - "opengl.dll", "libopengl.lib" oder was?
  • OpenGL ist in der Regel ausgesetzt, die als Teil der Plattform. Für Windows hat Microsoft Versand wurde eine OpenGL-Schnittstelle (opengl.lib) in seine Plattform-SDKs für immer. Ich bin mir nicht ganz sicher wie Sie gehen über den Bau .a für mingw linker aus diesen, aber es ist definitiv anders als mit mesa.
  • Mesa selbst ist eine software-Implementierung. Auf GNU/Linux, neben der Implementierung der software, es beinhaltet auch DRI (direct rendering interface) ermöglicht das schreiben von hardware-beschleunigte Treiber für GL.
InformationsquelleAutor Petike | 2010-01-01
Schreibe einen Kommentar