Mam program C++ aplikacje na (Ubuntu) Linux i skompilować je do 2 systemami operacyjnymi: natywnie do Linux za pomocą "g ++" (GNU C++ kompilator) i cross-kompilacji ich do Okna za pomocą "i386-mingw32-g ++" (kompilator krzyżowy MinGW C++).OpenGL + Mesa 3D + MinGW
Teraz próbuję cross-kompilować aplikacje "OpenGL" (od Linuksa do Windowsa) - do tego potrzebuję plików bibliotecznych OpenGL.
Jako implementację OpenGL używam biblioteki open source "Mesa 3D". Na szczęście Ubuntu oferuje "prekompilowane" biblioteki mesa3d (libgl1-mesa-dev i libglu1-mesa-dev) dla Linuksa, ale niestety, nie ma żadnych prekompilowanych bibliotek do użycia z kompilatorem krzyżowym MinGW (a zatem wersje systemu Windows im) - więc "MUSZĘ" ręcznie skompilować je "ze źródła" (które można pobrać ze strony domowej http://www.mesa3d.org).
Ale nie mam pojęcia, aby to zrobić. W kodzie źródłowym mesa3d znajduje się kilka dokumentów, jak budować biblioteki dla określonych platform - konkretnie plik readme "README.MINGW32".
Ale tylko na pierwszej linii jest jakaś komenda
mingw32-make -f Makefile.mgw [OPTIONS...]
którego nie można uruchomić, ponieważ nie mam żadnego programu „mingw32-make” zainstalowany. Przez inne oprogramowanie, kiedyś zbudować je z „klasyczną” procedury
./configure -> make -> make install
, ale to nie działa na bibliotekach mesa3d.
Na przykład Próbowałem również
./configure --host=i386-mingw32
i został skonfigurowany ok, ale po wpisaniu
make
to rzucił jakiś błąd
error: #error No PIPE_SUBSYSTEM_WINDOWS_xxx subsystem defined.
i teraz jestem zgubiony: - (.)
Czy ktoś wie, jak zbudować biblioteki mesa3d dla r używając ich z mingw32?
P.S .: I oczywiście NIE CHCĘ w użyciu Microsoft Visual Studio nigdy więcej :-). A także chciałbym zrobić wszystkie wymagane rzeczy, aby zbudować środowisko OpenGL z Linuksa i używając mingw32 do kompilacji krzyżowej. Mam nadzieję, że to możliwe.
P.S.2: Na stronie http://www.mesa3d.org/systems.html jest napisane, że użycie MinGW z Mesa 3D jest "przestarzałe". Jestem na dobrej drodze, by użyć go w ten sposób?
Zastanawiam się ... OpenGL jest zwykle używany do dostępu do akcelerowanego 3D sprzętu. Korzystając z mesy w oknach, uciekasz się do wdrożenia oprogramowania w systemie Windows. Czy to naprawdę chcesz? W przeciwnym razie wystarczy skorzystać z bibliotek OpenGL z systemem Windows. – Bahbar
Moim głównym celem jest bycie "niezależnym od architektury" przy pisaniu kodu C++ -> dlatego uważam, że używanie biblioteki międzyplatformowej ("mesa3d" w tym przypadku) jest dobrym sposobem na osiągnięcie tego, nie wiem, może ja mylę się. Czy powinienem to zrozumieć, aby w "każdym systemie Windows" były jakieś "biblioteki", które implementują OpenGL i kiedy piszę kod OpenGL na moim komputerze z Linuksem, nie muszę dystrybuować żadnych dodatkowych bibliotek OpenGL z moim programem? Jeśli tak, które biblioteki to - "opengl.dll", "libopengl.lib" lub co? – Petike
OpenGL jest zwykle eksponowany jako część platformy. W przypadku systemu Windows firma Microsoft od zawsze dostarcza interfejs OpenGL (opengl.lib) w pakietach SDK platformy. Nie jestem do końca pewien, w jaki sposób budujesz .a na linker z tych, ale zdecydowanie różni się od używania mesy. – Bahbar