Ok, in ultimele zile am pierdut timp bun cautand o solutie pentru a compila un modul de AMXX scris in C++ cu ajutorul gcc. Problema e ca niciodata nu-i dadeam de cap asa ca m-am hotarat sa o fac in stilul propriu. De la inceput trebuie specificat ca eu prefer "sa vad inainte sa ating" asa ca mi-am instalat o masina virtuala(VirtualBox), mi-am pus Ubuntu si am instalat Code::Blocks ca si IDE. De ce sa ne chinuim cu gcc din terminal cand s-au inventat IDE-urile pentru Linux si interfetele grafice?
Linux(Ubuntu 11.10):
Porniti masina virtuala, descarcati un iso Ubuntu, instalati-l si asigurati-va ca aveti instalate urmatoarele lucruri: gcc si codeblocks
Instalare gcc: Deschideti terminalul
Rulati urmatoarea comanda: sudo apt-get install g++
Daca vi se cere vreo parola, introduceti parola contului de utilizator
Instalare Code::Blocks:
In Software Center
Cautati codeblocks
De instalat cred ca va descurcati
Observatii:
Pentru a compila un modul amxx aveti nevoie de urmatoarele lucruri:
Pentru Linux salvati arhiva hlsdk-2.3-p3.tar.gz. O descarcati de preferat pe Desktop pentru a fi accesibila
Linux(Ubuntu 11.10):
Porniti masina virtuala, descarcati un iso Ubuntu, instalati-l si asigurati-va ca aveti instalate urmatoarele lucruri: gcc si codeblocks
Instalare gcc: Deschideti terminalul
Daca vi se cere vreo parola, introduceti parola contului de utilizator
Instalare Code::Blocks:
In Software Center
Cautati codeblocks
De instalat cred ca va descurcati
Observatii:
Pentru a compila un modul amxx aveti nevoie de urmatoarele lucruri:
Pentru Linux salvati arhiva hlsdk-2.3-p3.tar.gz. O descarcati de preferat pe Desktop pentru a fi accesibila
- MetaMod Source: Sursa metamod o gasiti aici: http://metamod.org/ ,salvati si extrageti pe desktop "v1.19 Sourcecode.tar"
De specificat este faptul ca modulele AMXX vin cu un sablon predefinit. Descarcam un modul deja creat, eu am ales modulul sockets_hz de aici: http://forums.alliedmods.net/showthread.php?t=60026 .Fisierele amxxmodule.cpp, amxxmodule.h si moduleconfig.h reprezinta sablonul ce trebuie doar modificat. Bineinteles, cei care detin cunostinte avansate de C le pot implementa singuri. In fisierul sockets.cpp vedeti incluziunea fisierului "amxxmodule.h". Codul dumneavoastra trebuie sa contina obligatoriu aceasta linie, sau un header asemanator. Crearea proiectului: Deschidem CodeBlocks->Create new project si ca template alegem Shared library Dupa ce completam datele si alegem limbajul de compilare(recomand C daca nu folositi STL-ul, altfel la nevoie C++. HL SDK este scris in C asa ca poate fi integrat cu usurinta in C++) La Surse avem main.cpp. Deci am creat proiectul, automat a fost creat si folderul corespunzator. Obligatoriu: Copiem fisierele amxxmodule.cpp,amxmodule.h si moduleconfig.h si in acest folder. Bun, acum putem crea o sursa noua(main.cpp) sau putem lega una deja creata. Eu voi folosi sursa sockets.cpp. Sterg main.cpp si adaugam noua sursa. Initial ne ducem pe WorkSpace->Numele Proectului-> Click Dreapta-> Add files si ni se va deschide o fereastra ca in screenul urmator. O sa vedeti ca e selectata zona unde trebuie sa faceti Click Dreapta inainte: Obligatoriu adaugam si sursa amxxmodule.cpp in acelasi mod. De specificat ca sursele trebuiesc puse in modul Debug si Release(o sa vi se deschida o fereastra la adaugare) Acum trebuie sa adaugam la fel si fisierele amxxmodule.h si moduleconfig.h. Ar trebui ca mediul nostru de dezvoltare sa arate cam asa: Se observa existenta celor 3 fisiere template. Pentru a modifica datele modulului se deschide fisierul moduleconfig.cfg. Ar trebui sa aveti: #define MODULE_NAME "...." #define MODULE_VERSION "...." #define MODULE_AUTHOR "....." #define MODULE_URL "....." #define MODULE_LOGTAG "....." #define MODULE_LIBRARY "....." #define MODULE_LIBCLASS "........" Modificati si salvati. Cred ca va dati seama ce reprezinta fiecare. MODULE_LIBRARY si MODULE_LIBCLASS nu le-am gasit vreo importanta deci pot fi modificate oricum. Parte Importanta: Va mai amintiti de SDK-urile descarcate mai devreme? Acum trebuie sa le linkam in compilator. Va duceti in meniul Project->Build Options si se va deschide ceva de genul: Accesam Search Directories si ADD. Adaugam pe rand : Folderele se vad. Acum nu mai ramane decat sa dam Build si -------------- Build: Debug in sdf --------------- Compiling: sockets.cpp Linking dynamic library: bin/Debug/libsdf.so Output size is 39.16 KB Process terminated with status 0 (0 minutes, 0 seconds) 0 errors, 0 warnings Redenumiti libraria de forma nume_amxx_i386.so si o adaugati in amxx. Postul urmator va fi despre cum puteti compila un modul amxx in Windows |
Niciun comentariu:
Trimiteți un comentariu