Je programme des applications C++ sous Linux (Ubuntu) et les compiles 2 systèmes d'exploitation: en mode natif à Linux en utilisant "g ++" (compilateur GNU C++) et les cross-compilation à de Windows en utilisant "i386-mingw32-g ++" (compilateur croisé MinGW C++).OpenGL + Mesa 3D + MinGW
Maintenant, j'essaie de compiler des applications "OpenGL" (de Linux à Windows) - pour cela j'ai besoin de fichiers de bibliothèque OpenGL.
En tant qu'implémentation d'OpenGL, j'utilise la bibliothèque open source "Mesa 3D". Heureusement, Ubuntu propose des bibliothèques "précompilées" mesa3d (libgl1-mesa-dev et libglu1-mesa-dev) pour Linux, mais malheureusement, il n'y a pas de bibliothèques précompilées à utiliser avec le compilateur croisé MinGW (donc les versions Windows de eux) - donc je "DOIT" les compiler manuellement "à partir de la source" (qui peut être téléchargé à partir de http://www.mesa3d.org page d'accueil).
Mais je n'ai aucune idée de le faire. Dans le code source mesa3d, il y a quelques documents sur la façon de construire les bibliothèques pour certaines plates-formes spécifiques - en particulier il y a le fichier readme "README.MINGW32".
Mais sur les premières lignes il y a une commande
mingw32-make -f Makefile.mgw [OPTIONS...]
que je ne peux pas courir parce que je n'ai pas programme « mingw32-make » sont installés. En d'autres logiciels, je les construire avec le « classique »
./configure -> make -> make install
procédure
, mais cela ne fonctionne pas sur les bibliothèques mesa3d.
Par exemple, j'ai aussi essayé
./configure --host=i386-mingw32
et il a été configuré ok, mais après avoir tapé
make
il a jeté une erreur
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
et maintenant je suis perdu: - (
Alors quelqu'un sait-il comment construire les bibliothèques mesa3d pour r les utiliser avec mingw32?
P.S .: Et bien sûr, JE NE VEUX PAS utiliser Microsoft Visual Studio Plus jamais :-). Et aussi je voudrais faire tout le nécessaire pour construire l'environnement OpenGL à partir de Linux et utiliser mingw32 pour la compilation croisée. J'espère que c'est possible.
P.S.2: Sur la page http://www.mesa3d.org/systems.html, il est écrit que l'utilisation de MinGW avec Mesa 3D est "obsolète". Je suis sur le bon chemin pour l'utiliser comme ça?
Je me demandais ... OpenGL est généralement utilisé pour accéder à la 3D accélérée par le matériel. En utilisant mesa sur windows, vous avez recours à une implémentation logicielle sur windows. Est-ce vraiment ce que tu veux? Sinon, il suffit d'utiliser les librairies opengl fournies par windows. – Bahbar
Mon objectif principal est d'être "indépendant de l'architecture" en écrivant du code C++ -> donc je pensais que l'utilisation d'une bibliothèque multiplateforme ("mesa3d" dans ce cas) est un bon moyen d'y parvenir, je ne sais pas je me trompe. Donc dois-je comprendre que dans "chaque Windows" il y a des "bibliothèques" qui implémente OpenGL et quand j'écris du code OpenGL sur ma machine Linux, je n'ai pas besoin de distribuer de bibliothèques OpenGL supplémentaires avec mon programme? Si oui, quelles bibliothèques sont - "opengl.dll", "libopengl.lib" ou quoi? – Petike
OpenGL est généralement exposé dans le cadre de la plate-forme. Pour Windows, Microsoft a envoyé une interface OpenGL (opengl.lib) dans ses SDK de plate-forme pour toujours. Je ne sais pas exactement comment vous allez construire un .a pour mingw linker hors de ceux-ci, mais il est certainement différent d'utiliser mesa. – Bahbar