programmo applicazioni C++ su (Ubuntu) Linux e compilarli a 2 sistemi operativi: nativamente per Linux utilizzando "g ++" (compilatore GNU C++) e cross-compilare in di Windows usando "i386-mingw32-g ++" (compilatore incrociato MinGW C++).OpenGL + Mesa 3D + MinGW
Ora, sto provando a compilare cross-comple le applicazioni "OpenGL" (da Linux a Windows) - per questo ho bisogno di alcuni file di libreria OpenGL.
Come implementazione di OpenGL, utilizzo la libreria open source "Mesa 3D". Fortunatamente, Ubuntu offre "precompilati" librerie mesa3d (libgl1-mesa-dev e libglu1-mesa-dev) per Linux, ma purtroppo, non ci sono le librerie precompilate per l'utilizzo con MinGW cross-compilatore (quindi versioni Windows di loro) - quindi I "DEVE" compilarli manualmente "dalla fonte" (che può essere scaricato dalla homepage di http://www.mesa3d.org).
Ma non ho idea di farlo. All'interno del codice sorgente di mesa3d, ci sono alcuni documenti su come costruire le librerie per alcune piattaforme specifiche - in particolare c'è il file readme "README.MINGW32".
Ma solo sulle prime righe c'è qualche comando
mingw32-make -f Makefile.mgw [OPTIONS...]
che non posso correre, perché non ho un programma "mingw32-make" installato. Con altri software, che ho usato per costruirli con il "classico"
./configure -> make -> make install
procedura, ma questo non sta funzionando su librerie mesa3d.
Per esempio, ho anche provato
./configure --host=i386-mingw32
ed è stato configurato male, ma dopo aver digitato
make
si gettò qualche errore
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
e ora sono perduto: - (
Così qualcuno sa come costruire le librerie mesa3d per li stai usando con mingw32?
P.S .: E, naturalmente, NON VOGLIO di utilizzare Microsoft Visual Studio MAI PIU ':-). E vorrei anche fare tutto il necessario per creare l'ambiente OpenGL da Linux e utilizzare mingw32 per la cross-compiling. Spero sia possibile.
P.S.2: Nella pagina http://www.mesa3d.org/systems.html è scritto che l'utilizzo di MinGW con Mesa 3D è "deprecato". Sono sulla strada giusta per usarlo proprio in quel modo?
Basta chiedersi ... OpenGL viene in genere utilizzato per accedere all'hardware accelerato 3D. Usando mesa su Windows, si ricorre a un'implementazione software su Windows. E 'davvero quello che vuoi? Altrimenti, è sufficiente utilizzare le librerie opengl fornite da Windows. – Bahbar
Il mio obiettivo principale è quello di "architettura indipendente" quando si scrive codice C++ -> quindi ho pensato che usare una libreria multipiattaforma ("mesa3d" in questo caso) è un buon modo per ottenere ciò, non so, forse io ho torto. Quindi dovrei averlo capito in modo che in "ogni Windows" ci siano alcune "librerie" che implementano OpenGL e quando scrivo del codice OpenGL sulla mia macchina Linux, non ho bisogno di distribuire altre librerie OpenGL con il mio programma? In tal caso, quali librerie sono: "opengl.dll", "libopengl.lib" o cosa? – Petike
OpenGL viene solitamente esposto come parte della piattaforma. Per Windows, Microsoft ha distribuito un'interfaccia OpenGL (opengl.lib) nei suoi SDK di piattaforma per sempre. Non sono sicuro di come procederai a costruire .a per il linker mingw, ma è decisamente diverso dall'utilizzo di mesa. – Bahbar