DirectX9 : Eclipse + CDT + MinGW
W ostatnim wpisie było o SDL i poniekąd o OpenGL (OGL), więc dla równowagi coś dla “panującego standardu”, oczywiście z wykorzystaniem Eclipse, CDT i MinGW. Tak naprawdę nie wysiliłem się za bardzo, ponieważ wziąłem przykładowy kod aplikacji DX z template’a dołączonego do Code::Blocks. Czytaj dalej »
SDL : Eclipse + CDT + MinGW
Ponieważ wiele razy wspominałem, ile dobrego zawiera w sobie na starcie MinGW Distro – nuwen.net, dziś stworzymy okienko Windows’a za pomocą SDL.
W skrócie można rzecz, że jest to bardzo prosty interfejs do OpenGL. Jego jedyną (poważną) wadą jest to, że działa on software’owo, czyli nie wykorzystując w pełni karty graficznej, co ma z kolei ten plus, że jest to przenośna biblioteka.
Oczywiście możemy brać z SDL to co najlepsze a resztę robić w “pure” OGL.
Czytaj dalej »
JNI #1 – Eclipse + CDT + MinGW
Pisałem już o różnych językach skryptowych – postaram się opisać przynajmniej podstawy współpracy z cpp z każdym z nich. Dziś przedstawię jak wygląda współpraca Javy i cpp przez interfejs JNI (Java Native Interface).
Tak jak w temacie, pokażę jak napisać prosty pomost między Javą a cpp przy wykorzystaniu IDE Eclipse z biblioteką CDT5.0 oraz wykorzystując toolchain’a MinGW. O sposobie konfiguracji takiego środowiska wspomniałem już wcześniej, a więc zaczynamy. Czytaj dalej »
CPP IDE = Eclipse + MinGW
Ponieważ programując w Javie używałem środowiska Eclipse, postanowiłem krótko opisać, jak wykorzystać to świetne IDE do pracy także z CPP.
Trzeba przyznać, że rozszerzalność tego IDE jest niesamowita – istnieje mnóstwo plugin’ów dzięki którym można wykorzystać Eclipse do programowania w większości języków kompilowanych oraz skryptowych.
Potrzebne będą dwie rzeczy:
- Dystrybucja MinGW,
- Eclipse + CDT lub samo CDT do pobrania przez update software w Eclipse po dodaniu strony
http://download.eclipse.org/tools/cdt/releases/ganymede.
Wykorzystałem dystrybucję MinGW Distro – nuwen.net, ponieważ jest szybka w instalacji (rozpakowanie plików) i zawiera wszelkie podstawowe aplikacje oraz te bardziej specjalne, ale o tym można się dowiedzieć na podanej stronie.
Jeśli chodzi o Eclipse, to jest to wersja specjalnie przygotowana do projektów w cpp i zawiera oprócz CDT (w wersji 6.0) także klienta repozytorium CVS (klienta SVN można ściągnąć ze strony subclipse.tigris.org) oraz Mylyn.
Istotne jest to, jak należy “zainstalować” tą dystrybucję MinGW, żeby była widoczna dla Eclipse. Otóż możemy rozpakować podaną dystrybucję gdziekolwiek (najlepiej bez białych znaków w strukturze katalogów), lecz jeśli nie będzie to standardowe miejsce C:\MinGW\ to musimy utworzyć na dysku C takie katalogi: C:\MinGW\bin\, ponieważ CDT wyszukuje zainstalowanego toolchain‘a od MinGW m.in. po istnieniu podanej ścieżki na dysku C.
To oczywiście nie wszystko – w zmiennej PATH należy dodać lokalizację rozpakowanej dystrybucji ze ścieżką do podkatalogu bin, czyli dla przykładu D:\PRO\MinGW\bin\. Żeby sprawdzić czy wszystko jest ok, należy uruchomić ponownie komputer lub wylogować się z profilu – dopiero wtedy zmiany w PATH zostaną uwzględnione dla systemu (oczywiście można wszystko zmienić z wiersza polecenia ale nie będę komplikował).
W tym momencie należy sprawdzić, czy zmienna systemowa PATH zawiera dystrybucję MinGW – w tym celu wydajemy w konsoli systemu (cmd) polecenie:
g++ -v.
Jeśli wszystko jest ok, to powinniśmy otrzymać parę linii komunikatu kończącego się np. tak:
gcc version 4.2.1-dw2 (mingw32-2).
Czas na odpalenie Eclipse i stworzenie projektu.
W tym celu wybieramy opcję New Project/C++ Project z menu kontekstowego nad oknem Project Explorer, przez przyciśnięcie przycisku na liście toolbox’a New C/C++ Project lub przez menu File.
W otworzonym okienku istotne są dwie rzeczy:
- W prawym panelu powinien być widoczny toolchain MinGW GCC,
- Tworząc “zwykły” projekt .exe wybieramy “Empty Project”, zamiast pozostałych “Hello World …”.
Dalsze okienka akceptujemy bez wprowadzania zmian.
Tworzymy nowy plik implementacji (.cpp) z menu new, i dodajemy tam przykładowy kod:
#include <iostream> using namespace std; int main () { // Say Hello five times for (int index = 0; index < 5; ++index) cout << "HelloWorld!" << endl; exit(0); }
Domyślnie kompilacja następuje przy każdym save’owaniu – o ile przy programowaniu w Java’ie nie jest to uciążliwe (a wręcz bardzo pomocne), to w przypadku pracy z cpp może to przeszkadzać osobom takim jak ja, które wciskają ctrl+s co 20 sekund. Warto więc odznaczyć pole “Build Automatically” w menu Project.
Kompilacji (build całego projektu) dokonywać teraz można np. poprzez skrót ctrl+b lub przez odpowiednią ikonkę “młotka” na toolbox’ie Eclipse’a.
W odpowiedzi w oknie Console dostaniemy podobne podsumowanie:
Build complete for project (twój projekt)
Time consumed: 1578 ms.
Teraz wystarczy otrzymany .exe odpalić bezpośrednio z Eclipse przez menu Run as – Local C/C++ Application i w oknie Console otrzymamy wynik działania aplikacji podanej wyżej.
CPP -> poszukiwanie IDE
Ok, zaczynamy z cpp.
Mam już wiedzę, tylko trzeba ją w coś przelewać :)
Standardowo pracowałem sobie na początku w Visual Studio 8.0, a dokładniej “Visual C++ 2005 Express Edition”, ale szybko zostałem poinformowany (news z Warsztatu), że lepiej będzie pisać w nowszym i pewnie poprawionym narzędziu – tak więc ściągnięcie wersji 2008 było kwestią szybkości łącza :) Szybka instalacja i do dzieła. Ok, parę zmian kosmetycznych, sprawdziłem jeszcze klawiszologię nowego dziecka MS i do boju.
Przeglądając forum, napotkałem na informację o zintegrowanym MinGW + GCC z wieloma popularnymi bibliotekami używanymi w “prostym” gamedev. Parę podejść do kompilacji “z ręki” i dałem sobie spokój. Niestety, wolę iść na łatwiznę na tym etapie, a skoro już na tym to do końca tak zostanie -pewnie w przyszłości MS na mnie zarobi. A przecież właśnie tak działa ich mechanizm reklamy i darmowych wersji :)
Oczywiście są przynajmniej dwa IDE współpracujące z GCC – Code::Blocks oraz Eclipse. Dodatkową siłą tego pierwszego jest zestaw kreatorów projektów dla różnych “technologi” – może się to okazać pomocne przy pierwszych kontaktach z nimi.
Ja jednak pozostanę przy darmowej wersji Visual’a.

