Aleksander Denisiuk. UWM
Zaawansowane systemy programowania grafiki
Instalacja i konfiguracja kompilatora i bibliotek
dla OpenGL w systemie Windows
MSYS2 + MinGW-w64 + (Opcjonalnie) Code::Blocks
MSYS2
Pobierz instalator MSYS2 ze strony https://www.msys2.org/
Odpal instalator.
Wpisz folder do instalacji: tylko lokalny folder, bez spacji, polskich znaków etc. Najlepiej zostaw domyślny.
Na koniec zaznacz
Uruchom MSYS2 64 bit teraz
.Zobaczysz konsolę, podobną do tej:
Następne kroki będziesz wykonywała wpisując polecenia w konsoli. Raz wpisane polecenie można powtórzyć naciskając strzałkę w górę (↑). Polecenia można też edytować. Działają przyciski ←, →, ↓, Crtl+←, Ctrl+→, Home, End. Działa autouzupełnienie po klawiszu Tab. Można wkleić tekst ze schowka.
Aktualizacja bazy danych dostępnych pakietów. Wpisz
$ pacman -Syu
Śmiało możesz się zgadzać ze wszystkimi propozycjami odpowiadając y albo po prostu naciskając Enter:
Jeżeli wszystko pójdzie zgodnie z planem, konsola zostanie zamknięta.
-
Uruchom konsolę
MSYS2 MinGW 64 bit
ponownie. Znajdź w menu programów:Zakończ aktualizację pakietów wpisując
$ pacman -Su
MinGW-w64
-
Instalacja kompilatora
$ pacman -S mingw-w64-x86_64-toolchain
Można zainstalować wszystko. Chociaż Fortran i Ada na pewno nie będą potrzebne.
-
Instalacja
make
$ pacman -S make
-
Instalacja
zip/unzip
$ pacman -S zip
$ pacman -S unzip
Nie działa…
Jeżeli po wykonaniu wcześniej opisanej instrukcji nie możesz skompilować testowego projektu poleceniem make
(na przykład, system nie odnajduje kompilatora bądź bibiotek), może to oznaczać, że masz w systemie już zainstalowany inny kompilator i narzędzie make
. Na przykład, w składzie paczki XAMPP albo razem z gitem.
Najprostszym rozwiązaniem w tej sytuacji będzie zainstalowanie Code::Blocks. Upewnij się, że masz w ustawieniach wpisaną ścieżkę do kompilatora i inne parametry identycznie do tych z rysunku. Kompiluj projekt w Code::Blocks.
Alternatywnie można poprawić konfigurację twojego systemu, aby domyślnie używane były make
oraz kompilatory z MSYS2. Albo wpisanie jawnej ścieżki do kompilatora w pliku Makefile
. Można również nie instalować MSYS2, skorzystać z tamtego kompilatora, trzeba tylko doinstalować niezbędne biblioteki.
Biblioteki
-
Instalacja GLFW
$ pacman -S mingw-w64-x86_64-glfw
-
Instalacja GLEW
$ pacman -S mingw-w64-x86_64-glew
Testowy projekt
Wszystko już jest zainstalowane. Skompilujemy i uruchomimy testowy projekt
-
Tworzymy katalog dla projektu:
$ mkdir Triangle
-
Przechodzimy do tego katalogu:
$ cd Triangle
-
Pobieramy archiwum z projektem:
$ wget http://wmii.uwm.edu.pl/~denisjuk/uwm/zaa/c/lab01/Triangle.zip
-
Rozpakowujemy:
$ unzip Triangle.zip
-
Budujemy:
$ make
-
Odpalamy:
$ make run
-
Pakujemy projekt do wysłania mailem:
$ make zip
-
Voila!
Uwagi
-
Skompilowany program (
triangle.exe
) można odpalić bezpośrednio z konsoli:$ ./triangle.exe
-
Fizycznie program znajduje się w folderze
C:\msys64\home\User\Triangle
. Można tam na niego doubleclicknąć. Windows nie potrafi jednak odpalić tego programu, bo nie będzie w stanie znaleźć bibliotek (powie których). Wszystkie te biblioteki są w folderzeC:\msys64\mingw64\bin
. Można te biblioteki skopiować do foldera z programem. Albo nawet doC:\Windows\System32
.
Code::Blocks (Opcjonalnie)
Do pisania kodu można użyć dowolnego edytora programistycznego. Jeżeli wolisz programować w IDE i nie masz ulubionego dla C++, wypróbuj Code::Blocks.
Instalacja i konfiguracja
-
Pobierz plik instalacyjny z https://www.codeblocks.org/. Kompilator i debugger Mingw już masz zainstalowany, wybierz instalator bez nich:
-
W ustawieniach Code::Blocks trzeba podać ścieżkę do kompilatora. Wybierz w menu opcję
Settings —> Compiler
. W rozdzialeGlobal Compiler Settings
wybierz panelToolchain Executables
wpisz w poluCompiler’s Installation Directory
ścieżkęC:\msys64\mingw64
jak na obrazku: -
Ten krok należy wykonać tylko jeśli będziesz programować w OpenGL. Jeżeli nie, to już wszystko zrobiłaś.
A więc: nie zamykaj tego okna. Znajdź panelLinker settings
wpisz w poluOther linker options
następujące opcje-lglfw3 -lglew32 -lopengl32
.Teraz konsolidator (inaczej linker, program który łączy pliki skompilowane z twojego kodu w jeden plik wykonywalny) będzie wiedział w jakich bibliotekach znaleźć dodatkowe funkcje.
Projekt testowy
-
Wybierz w menu opcję
File —> New —> Project
. Wybierz szablonConsole application
: -
W podanym przez Ciebie katalogu Code::Blocks utworzy kilka plików, między innymi
main.cpp
. Wypakuj do tego katalogu projekt testowy. Ważne, aby twój plikmain.cpp
nadpisał ten utworzony automatycznie. -
Dodaj do projektu Code::Blocks wszystkie pliki projektu (
Project —> Add files
). -
Jeszcze jedna rzecz. Kod prykładowego projektu używa profilu Debug OpenGL tylko jeżeli przy kompilacji ustawiona jest zmienna środowiskowa
DEBUG
Wybierz w menu opcjęProject —> Build options
. W profiluDebug
wybierz panel#defines
i wpisz tamDEBUG
.-
Można
DEBUG
ustawić w opcjach kompilatora w ustawieniach Code::Blocks. Będzie to miało wpływ na wszystkie projekty. Wybierz w menu opcjęSettings —> Compiler
. W panelu#defines
wpiszDEBUG
. -
Jeżeli masz zamiar debugować w Code::Blocks, upewnij się że w ustawieniach wybrany jest debugger od MSYS2.
Wybierz w menu opcję
Settings —> Debugger
. Wpisz ścieżkę dogdb.exe
:
-
-
Można projekt zbudować (
Build —> Build
) i odpalić (Build —> Run
). -
Enjoy.
Uwagi
-
Opcje
-lglfw3 -lglew32 -lopengl32
, które wpisywałaś przy konfiguracji Code::Blocks podane są w plikuMakefile
. Otwórz ten plik, znajdź te opcje. Jak widzisz, są tam wpisane też niektóre inne biblioteki. W razie problemów konsolidatora można spróbować uzupełnić opcje w konfiguracji Code::Blocks. -
Code::Blocks, jak wiele innych IDE, nie korzysta z dołączonego pliku
Makefile
. Reguły, z których korzysta przy budowaniu projektu zapisywane są w plikach typu*.cbp
,*.depend
, etc. Pliki te są specyficzne dla Code::Blocks i są bezużyteczne w systemach bez tego środowiska. Jeżeli będziesz wysyłać komuś projekt, nie załączaj tych plików. Nie załączaj również plików z folderówobj
orazbin
. PlikMakefile
natomiast koniecznie trzeba dodać.- Istnieje możliwość aby Code::Blocks korzystał z twojego pliku
Makefile
przy budowaniu projektu. Początek ścieżki jest w menuProject —> Properties…
- Istnieje możliwość aby Code::Blocks korzystał z twojego pliku
-
Dowiedz się co jest w folderach
obj
orazbin
. -
Znajdź skompilowany program i spróbuj go odpalić poza Code::Blocks.
-
????????
-
Profit