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 bitponownie. 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.
Dla tych co lubią IDE Visual Studio Code jest instrukcja Michała Malolepszego.
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 Settingswybierz panelToolchain Executableswpisz w poluCompiler’s Installation DirectoryścieżkęC:\msys64\mingw64jak 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 settingswpisz w poluOther linker optionsnastę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.cppnadpisał 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
DEBUGWybierz w menu opcjęProject —> Build options. W profiluDebugwybierz panel#definesi wpisz tamDEBUG.
-
Można
DEBUGustawić 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#defineswpiszDEBUG.
-
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ówobjorazbin. PlikMakefilenatomiast koniecznie trzeba dodać.- Istnieje możliwość aby Code::Blocks korzystał z twojego pliku
Makefileprzy 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
objorazbin. -
Znajdź skompilowany program i spróbuj go odpalić poza Code::Blocks.
-
????????
-
Profit