graphic
graphic
Forum OTS 7.92 Pepsi Strona Główna » Artykuły o OTS » [C++] Kompilacja najnowszych SVN pod Windows (Dev-Cpp)*
graphic
Napisz nowy temat   Odpowiedz do tematu
graphic

graphic graphic
Matiis Temat postu: [C++] Kompilacja najnowszych SVN pod Windows (Dev-Cpp)*


Administrator
Dołączył: 03 Mar 2007
Posty: 63
Przeczytał: 0 tematów

Ostrzeżeń: 0/100
Skąd: Prosto z forum tibia.org.pl

Orginalny temat : [link widoczny dla zalogowanych]
This is by Killavus :

Witam. W związku z tym, że wiele osób nie potrafi dokonać poprawnej kompilacji źródeł SVNów... postanowiłem napisać ten poradnik. Jest on troche inny niż większość, ponieważ zastosowałem inny, wg. mnie prostszy sposób. Dowiesz się z niego:

  1. Jak ściągnąć kompilator,
  2. Jak zainstalować odpowiednie biblioteki,
  3. Jak sciągnąć najnowsze źródła SVNów (za pomocą repozytorium SVN),
  4. Jak stworzyć projekt kompilacji dla OTS,
  5. Jak poprawnie poprowadzić kompilację,
  6. Jak napisać swój pierwszy, prosty kod,
  7. Jak wygląda składnia języka C++ (bardzo pobieżnie).


1. Jak ściągnąć kompilator?

To bardzo proste. W tym celu wybieramy się na stronę [link widoczny dla zalogowanych] i ściągamy z jednego z linków Dev-Cpp. Przy instalacji wybieramy język angielski i instalujemy Dev-Cpp do standardowego katalogu (C:\Dev-Cpp), aby oszczędzić sobie pracy ze zmienianiem ścieżek. Stworzenie cache, wybranie skórki to już Wasza wola i nie musicie tego robić.

2. Jak zainstalować odpowiednie biblioteki?

Zacznijmy od tego, co to są biblioteki. W języku C i C++ (jak i w każdym innym) trzeba samemu pisać funkcje, które wykonywałyby odpowiednie działanie. I tutaj z pomocą przychodzą biblioteki. Biblioteki to takie “paczki”, które zawierają owe gotowe już funkcje. Aby skompilować OTS należy posiadać następujące biblioteki:

  • LUA 5.1 lub nowsze,
  • LibMySQL,
  • GMP (GNU Multiple Precision Arithmetic Library),
  • LibXML w wersji co najmniej 2.0 (LibXML2),
  • LibiconV,
  • SQLite (niekoniecznie),
  • Boost w wersji co najmniej 1.33.1 (obecnie jest to najnowsza wersja).


Aby oszczędzić Wam szukania, postanowiłem wszystkie paczki spakować w .rar i zamieścić na rapidshare i megaupload. Oto linki:
[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]
[link widoczny dla zalogowanych]

Wszystkie paczki instaluje się poprzez dwukrotne kliknięcie na nie (z wyjątkiem LUA, ale o tym za chwilę). Proces instalacji POWINIEN przejść automatycznie bez żadnych problemów.
Ale jak zainstalować LUA? To proste. Otwieramy katalog “LUA 5.1”, który znajdziemy w paczce. Powinniśmy znaleźć tam dwa katalogi: include i lib. (Jeżeli ich tam nie ma, nie pij tyle.). Zawartość katalogu “include” kopiujemy do C:\Dev-Cpp\include\, a zawartość katalogu “lib” do C:\Dev-Cpp\lib\. W przypadku REGEX, jest podobnie. Wchodzimy w katalog "REGEX" i wklejamy zawartość katalogu "lib" do C:\Dev-Cpp\lib\. To wszystko! Wszystkie biblioteki potrzebne do kompilacji masz już teraz zainstalowane. Gratulacje!


3. Jak sciągnąć najnowsze źródła SVNów (za pomocą repozytorium SVN)

Teraz stało się to jeszcze prostsze! Ściągamy SVNNT ([link widoczny dla zalogowanych]) i instalujemy ten program. Teraz po prostu klikamy gdziekolwiek w folderze prawym klawiszem myszki, klikamy “SVN Checkout”. W URL of Repository wpisujemy “https://opentibia.svn.sourceforge.net/svnroot/opentibia/otserv/trunk" i klikamy OK. I już! Pliki ściągną się do folderu, w którym kliknąłeś prawym przyciskiem myszki na “SVN Checkout”!

4. Jak stworzyć projekt kompilacji dla OTS

Klikamy na File, potem New i wybieramy Project, lub wybieramy ikonkę “New Project” z paska. Powinno pojawić się nam okienko. Wybieramy “Empty Project”, w name wpisujemy nazwę projektu. Przykładowo MojOTS wersja 1.0 (nie używaj polskich znaków!). Zapisujemy projekt gdzie chcemy (ja np. zawsze tworze katalogi: Sources / Binaries / Project. W Project zapisuje projekt, w Sources zapisuje nasze źródła, a w Binaries zapisuje gotowy plik .exe). Dobrze więc. Powinniśmy uświadczyć pustkę (Very Happy). Teraz wchodzimy klikamy na “Project” i wybieramy “Project Options” (lub po prostu wciskamy ALT+P). Wybieramy zakładkę “Parameters”. Powinny nam się pojawić 3 pola: Compiler, C++ Compiler i Linker. W C++ Compiler powinniśmy wpisać:
Kod:

-D__EXCEPTION_TRACER__

I, jeżeli używamy MySQL jako naszej bazy danych:
Kod:

-D__USE_MYSQL__
-D__USE_SQLITE__


Niektórzy wpisują także -D__WINDOWS__, więc jeżeli będziesz miał z kompilacją jakiekolwiek problemy, dodaj także powyższą linijkę (na samym początku).

UWAGA! Jeżeli nie używamy “-D__USE_MYSQL__” i “-D__USE_SQLITE__” (czyli korzystamy z XML), z projektu musimy wyrzucić:
Kod:

iomapserializesql.cpp
iomapserializesql.h
ioplayersql.cpp
ioplayersql.h
ioaccountsql.cpp
ioaccountsql.h
databasesqlite.cpp
databasesqlite.h
databasemysql.cpp
databasemysql.h
database.h
database.cpp


Przejdźmy teraz do “Linker” powinniśmy tam wpisać:
Kod:

-llibxml2
-llua
-llualib
-lwsock32
-lsqlite3
-lmysql
-lregex
-lgmp
-s
-Wl,-Map=otserv.map


Zapewne domyślasz się co to są te -l... tak, zgadłeś! To nasze biblioteki! Innych nie musisz wiedzieć, wiedz jednak, że są potrzebne. “Compiler” pozostawiamy pustym. Przechodzimy teraz do zakładki “Directories”.

W “Libary Directories” dodajemy:
Kod:

C:\Dev-Cpp\lib


Spowoduje to, że kompilator będzie pobierał wszystkie swoje biblioteki i w razie wywołania (komendą preprocesora #include, ale o tym nie musicie wiedzieć ;d) skieruje swe pierwsze kroki szukania właśnie tam.



Przejdźmy teraz do “Include Directories”. Wpisujemy tam:
Kod:

C:\Dev-Cpp\include\



Są to pliki, które potrzebne są naszym bibliotekom w etapie linkowania projektu. Po tym wszystkim klikamy OK. Pozostało nam już tylko dodać nasze źródła. W tym celu klikamy na MojOTS wersja 1.0(screen pozwoli Ci określić położenie – lewa kolumna na ekranie) prawym przyciskiem myszy:
Obiecany screen:
[link widoczny dla zalogowanych]

Wybieramy “Add to project...” i zaznaczamy wszystkie pliki .h i .cpp z naszych ściągniętych źródeł oprócz databasesqlite.cpp i databasesqlite.h (chyba, że chcesz używać SQLite – jednak tutaj należy dodać inne pliki do projektu... musiałbyś zrobić to sam). To wszystko! Projekt jest zwarty i gotowy do kompilacji.

4. Jak poprawnie poprowadzić kompilację

Aby skompilować swój projekt, klikamy na CTRL+F9. Za pierwszym razem skompiluje się cały i stworzy dwa pliki: plik.exe i otserv.map. Oba te pliki kopiujemy jako gotowy silnik OTSa gdzieś indziej. Następnym razem gdy użyjesz CTRL+F9 po zmianach, kompilator skompiluje tylko te pliki, które zedytowałeś i stworzy z nich .exe i otserv.map. Te dwa pliki to Twoje wyjście – za każdym razem, gdy kompilujesz projekt są tworzone i kopiujesz je sobie gdzie chcesz. Gdy użyjesz CTRL+F11, cały projekt jest kompilowany i rebuildowany (są tworzone od nowa pliki kodu wynikowego). Przy wprowadzaniu dużych zmian polecam używać CTRL+F11 w celu zachowania stabilności.

5. Jak napisać swój pierwszy, prosty kod

No tak. Mamy skompilowanego swojego OTSa, mamy swój projekt. Ale ja chce go sobie zedytować! Dodać nową opcję! Zedytujesz dzisiaj swój pierwszy kawałek kodu – zmienisz wyświetlaną nazwę OTSa w konsoli na swoją!
Zapewne denerwuje Cię, że masz swój silnik OTS ale gdy go włączasz pisze “OTServ Development-Version 0.6.0 - SVN Preview”... nie chciałbyś, żeby wyświetlało się “OTS zrobiony przez Jacka”? To bardzo proste. Wybieramy z projektu plik “otserv.cpp” (wybieramy to poprzez lewą kolumnę, tam gdzie pokazywał screen; szukamy pliku i klikamy na niego lewym przyciskiem myszy). Po tym używamy opcji “Szukaj” (coś a'la forum xD), wywołując ją skrótem klawiszowym CTRL+F. Wpisujemy w tej funkcji “OTServ Development-Version 0.6.0 - SVN Preview”. Program powinien przejść do kawałka kodu gdzie jest to zapisane. Wygląda on tak:
Kod:

   std::cout << ":: OTServ Development-Version 0.6.0 - SVN Preview" << std::endl;
   std::cout << ":: ==============================================" << std::endl;


Zmieniamy go na:
Kod:

   std::cout << ":: Serwer Jacka – moja pierwsza kompilacja" << std::endl;
   std::cout << ":: **********************************************" << std::endl;




Teraz używamy CTRL+F9 i czekamy na kompilację OTSa. Co to zrobi? Zapewne się domyślasz. Zamiast napisu w konsoli (tym czarnym okienku) OTSa:
Kod:

   :: OTServ Development-Version 0.6.0 – SVN Preview
   :: ==============================================


Ujrzysz:
Kod:

   :: Serwer Jacka – moja pierwsza kompilacja
   :: *********************************************



Prawda, że wygląda lepiej? W taki sam sposób możemy edytować inne części kodu. Jeżeli znasz w elementarnym stopniu angielski i chcesz znaleźć ciekawe, gotowe kody, zarejestruj się na otfans.net. W dziale “OTServ Programming” znajdziesz gotowce do swojego projektu OTSa.

7. Jak wygląda składnia języka C++ (bardzo pobieżnie)

Pewnie patrzysz na kod i widzisz mnóstwo linijek, których ni w ząb nie rozumiesz. To dobrze, znaczy to, że jeszcze nie przepadłeś i nie umiesz tego języka (che, che). Wytłumacze Ci więc jak najprostszy kod, a o resztę możesz się spytać [link widoczny dla zalogowanych]...

Oto prosty kod:
Kod:

int32_t getAccount() const {return accountNumber;}


Omówmy teraz, co i jak:

int32_t – jest to typ liczby/litery/czego sobie zapragniesz, która ta funkcja zwraca. Np. Ta funkcja zwraca typ int32_t co oznacza, że może zwrócić liczbę nie większą niż 4294967295 i nie mniejszą niż -4294967295. Wynika to z tego, że int32_t jest właśnie typem, który przechowuje takie liczby. Nie musisz wiedzieć jak, nie musisz wiedzieć czemu.

getAccount – to nazwa funkcji. Wywołujesz tą nazwą (razem z argumentami) funkcję, która ona reprezentuje.

() - lista argumentów. W tym akurat wypadku pusta.

const – znaczy to, że funkcja jest stała i nie można zmienić jej wartości po wywołaniu.

return – komenda “zwróć” coś tam.

accountNumber – to nazwa typu wewnętrznego w pliku gracza, oznaczająca account number.

{ i } - to tagi otwierające i zamykające. Mówią, co jest częścią funkcji, a co nie.

Zapewne wiesz co ta funkcja robi – zwraca acc naszego konta!

Myślę, że tym poradnikiem rozwiałem wszelkie wątpliwości dot. Kompilacji OTS. Wiesz jak mieć zawsze najnowszą wersje źródeł, jak je skompiloać i jakie biblioteki potrzebujesz, jak skonfigurować kompilator, jak zmienić cokolwiek w OTSie i znasz pobieżnie składnie języka. Tak więc do dzieła! Twórz własne silniki dla swojego użytku lub dla użytku innych osób. Dodam, że cały ten poradnik był pisany na WinXP i napewno na nim działa, ale sądze, że na 2k, 98 i 95 będzie również działał.[/INDENT]

Pozdrawiam,
Killavus.
PostWysłany:Czw 16:23, 29 Mar 2007

Post został pochwalony 0 razy
graphic
Zobacz profil autora Top of page
graphic

graphic graphic
Yoda Temat postu:


Administrator
Dołączył: 01 Mar 2007
Posty: 46
Przeczytał: 0 tematów

Pomógł: 1 raz
Ostrzeżeń: 0/100

postarales sie jak bym mogl bym dal 100/100 ale dam 10/10
PostWysłany:Czw 18:10, 29 Mar 2007

Post został pochwalony 0 razy
graphic
Zobacz profil autora Top of page
graphic

graphic
Napisz nowy temat   Odpowiedz do tematu
graphic
Forum OTS 7.92 Pepsi Strona Główna » Artykuły o OTS
graphic
   
graphic

graphic graphic
Wyświetl posty z ostatnich:   
Skocz do:  
Zobacz poprzedni temat :: Zobacz następny temat


Strona 1 z 1
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
graphic graphic


fora.pl - załóż własne forum dyskusyjne za darmo
KDM2 template v1.0.1 © jasidog.com
Powered by phpBB © 2001, 2002 phpBB Group
Obecny czas to Śro 3:59, 08 Maj 2024. Wszystkie czasy w strefie EET (Europa)
Regulamin