Enviar respuesta 
Compilar en Linux
Autor Mensaje
KISKE Sin conexión
Miembro Sr.


Plugin developer AMXX Support Medalla de aportes
Mensajes: 418
Registro en: May 2014
Reputación: 22
Mensaje: #1
Compilar en Linux
Hola,

No encontré una mejor sección en donde escribir esto.

Tengo una VM con Linux (creo que Ubuntu) y quiero compilar un modulo (ejemplo el amxmodx) para que me cree el .so

Y la verdad es que estoy muy perdido, ni siquiera se que clase de programa debo instalar si es que tengo que instalar alguno.


Gracias de antemano.
03/11/2014 10:12 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
meTaLiCroSS Sin conexión
Miembro Destacado


Buen Tutorial AMXX Support Pensador Trebol verde 1k
Mensajes: 1,412
Registro en: Oct 2013
Reputación: 52
Mensaje: #2
RE: Compilar en Linux
Con apt-get:

Instala gcc
Instala g++
Instala makefile

Anda a la carpeta del modulo (codigo fuente) en donde se encuentre el archivo MakeFile, y ahi en el prompt de la consola pones este horrendo comando

Cita:make

Y empezara a compilar. Te dirá todos los posibles errores y/o warnings. El más común es que no haz creado el directorio de Release. Es una verga mundial.

04/11/2014 01:00 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #3
RE: Compilar en Linux
Pues nose a que le erre pero no logro compilar, estoy casi seguro que hice lo mismo que la ultima vez que compile en linux.

Código:
emanuel@amxlinux:~/amxx_mm_hlsdk/amxx_183/dlls/fun$ make
mkdir -p Release
ln -sf ../../public/sdk/amxxmodule.cpp
make -f /home/emanuel/amxx_mm_hlsdk/amxx_183/dlls/fun/Makefile fun
make[1]: se ingresa al directorio «/home/emanuel/amxx_mm_hlsdk/amxx_183/dlls/fun»
gcc -I. -I../../public -I../../public/sdk -I../../public/amtl -I../../../hlsdk -I../../../hlsdk/public -I../../../hlsdk/common -I../../../hlsdk/dlls -I../../../hlsdk/engine -I../../../hlsdk/game_shared -I../../../hlsdk/pm_shared -I../../../metamod/metamod -DLINUX -DPAWN_CELL_SIZE=32 -DJIT -DASM32 -DHAVE_STDINT_H -fno-strict-aliasing -m32 -Wall -Werror -DNDEBUG -O2 -funroll-loops -fomit-frame-pointer -pipe -fvisibility=hidden -fno-exceptions -fno-rtti -fvisibility-inlines-hidden -o Release/amxxmodule.o -c amxxmodule.cpp
In file included from ../../public/sdk/amxxmodule.h:25:0,
                 from amxxmodule.cpp:20:
../../../hlsdk/dlls/extdll.h:29:0: error: se descarta el #pragma warning  [-Werror=unknown-pragmas]
../../../hlsdk/dlls/extdll.h:30:0: error: se descarta el #pragma warning  [-Werror=unknown-pragmas]
../../../hlsdk/dlls/extdll.h:31:0: error: se descarta el #pragma warning  [-Werror=unknown-pragmas]
../../../hlsdk/dlls/extdll.h:32:0: error: se descarta el #pragma warning  [-Werror=unknown-pragmas]
../../../hlsdk/dlls/extdll.h:33:0: error: se descarta el #pragma warning  [-Werror=unknown-pragmas]
In file included from ../../../metamod/metamod/sdk_util.h:55:0,
                 from ../../../metamod/metamod/dllapi.h:40,
                 from ../../../metamod/metamod/meta_api.h:40,
                 from ../../public/sdk/amxxmodule.h:26,
                 from amxxmodule.cpp:20:
../../../hlsdk/dlls/util.h:249:70: error: se descartó ‘typedef’ en esta declaración [-Werror]
In file included from ../../../metamod/metamod/dllapi.h:41:0,
                 from ../../../metamod/metamod/meta_api.h:40,
                 from ../../public/sdk/amxxmodule.h:26,
                 from amxxmodule.cpp:20:
../../../metamod/metamod/osdep.h: En la función ‘char* DLERROR()’:
../../../metamod/metamod/osdep.h:141:28: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
In file included from ../../../metamod/metamod/dllapi.h:41:0,
                 from ../../../metamod/metamod/meta_api.h:40,
                 from ../../public/sdk/amxxmodule.h:26,
                 from amxxmodule.cpp:20:
../../../metamod/metamod/osdep.h: En la función ‘int THREAD_CREATE(THREAD_T*, void (*)())’:
../../../metamod/metamod/osdep.h:297:59: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h:302:60: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int MUTEX_INIT(MUTEX_T*)’:
../../../metamod/metamod/osdep.h:329:53: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int MUTEX_LOCK(MUTEX_T*)’:
../../../metamod/metamod/osdep.h:336:53: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int MUTEX_UNLOCK(MUTEX_T*)’:
../../../metamod/metamod/osdep.h:343:55: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int COND_INIT(COND_T*)’:
../../../metamod/metamod/osdep.h:374:52: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int COND_WAIT(COND_T*, MUTEX_T*)’:
../../../metamod/metamod/osdep.h:381:52: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
../../../metamod/metamod/osdep.h: En la función ‘int COND_SIGNAL(COND_T*)’:
../../../metamod/metamod/osdep.h:388:54: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp: En el ámbito global:
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp:2051:1: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
amxxmodule.cpp: En la función ‘int Meta_Query(const char*, plugin_info_t**, mutil_funcs_t*)’:
amxxmodule.cpp:2223:104: error: la declaración de la función C ‘int Meta_Query(const char*, plugin_info_t**, mutil_funcs_t*)’ genera un conflicto con
../../../metamod/metamod/meta_api.h:134:17: error: declaración previa de ‘int Meta_Query(char*, plugin_info_t**, mutil_funcs_t*)’ aquí
amxxmodule.cpp: En la función ‘void UTIL_LogPrintf(const char*, ...)’:
amxxmodule.cpp:3050:33: error: conversión obsoleta de una constante de cadena a ‘char*’ [-Werror=write-strings]
cc1plus: all warnings being treated as errors
make[1]: *** [Release/amxxmodule.o] Error 1
make[1]: se sale del directorio «/home/emanuel/amxx_mm_hlsdk/amxx_183/dlls/fun»
make: *** [all] Error 2
emanuel@amxlinux:~/amxx_mm_hlsdk/amxx_183/dlls/fun$
AMXX 1.8.3
HLSDK 2.3p4
METAMOD 1.20

mañana probare con los files del metamod y hlsdk que tienen en github.

(Este mensaje fue modificado por última vez en: 04/11/2014 05:48 AM por Destro.)
04/11/2014 05:24 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
KISKE Sin conexión
Miembro Sr.


Plugin developer AMXX Support Medalla de aportes
Mensajes: 418
Registro en: May 2014
Reputación: 22
Mensaje: #4
RE: Compilar en Linux
Me quede en la parte del MakeFile, qué debo hacer para que se cree ?
04/11/2014 07:16 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #5
RE: Compilar en Linux
viene con en el source de los modulos (al menos los default de amxx)


Yo ya pude compilar fun, en mi caso para solucionar esos errores que me tiraba fui a meta_api.h y comente la declaración Meta_Query y agregue -Wno-deprecated en CFLAGS (en el makefile)

(Este mensaje fue modificado por última vez en: 04/11/2014 01:13 PM por Destro.)
04/11/2014 01:11 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Neeeeeeeeeel.- Sin conexión
Administrador


El protector Plugin developer 1k
Mensajes: 1,974
Registro en: Oct 2013
Reputación: 38
Mensaje: #6
RE: Compilar en Linux
Yo compilo modulos en Ubuntu con el makefile por default que viene, solo le agregué los directorios al hlsdk y metamod...

No contesto mensajes privados pidiendo soporte!

Donaciones en btc 1EcNJV2gTFDYr7BBAFpMQk7pVCFEZCaKX4
04/11/2014 03:42 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Destro Sin conexión
Anti-cheat Team


Buen Tutorial Plugin developer Pensador Plugin popular
Mensajes: 820
Registro en: Oct 2013
Reputación: 4
Mensaje: #7
RE: Compilar en Linux
de donde descargaste el metamod y hlsdk ?

04/11/2014 04:05 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
meTaLiCroSS Sin conexión
Miembro Destacado


Buen Tutorial AMXX Support Pensador Trebol verde 1k
Mensajes: 1,412
Registro en: Oct 2013
Reputación: 52
Mensaje: #8
RE: Compilar en Linux
(04/11/2014 04:05 PM)Destro escribió:  de donde descargaste el metamod y hlsdk ?

Tranquilo, la diferencia es que el prototipo de Meta_Query tiene el primer parametro declarado constante y en las otras funciones no, solo hay que editarlo

04/11/2014 05:47 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
KISKE Sin conexión
Miembro Sr.


Plugin developer AMXX Support Medalla de aportes
Mensajes: 418
Registro en: May 2014
Reputación: 22
Mensaje: #9
RE: Compilar en Linux
(04/11/2014 01:11 PM)Destro escribió:  viene con en el source de los modulos (al menos los default de amxx)

Y los que no vienen ?
(Este mensaje fue modificado por última vez en: 04/11/2014 07:21 PM por KISKE.)
04/11/2014 07:21 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
meTaLiCroSS Sin conexión
Miembro Destacado


Buen Tutorial AMXX Support Pensador Trebol verde 1k
Mensajes: 1,412
Registro en: Oct 2013
Reputación: 52
Mensaje: #10
RE: Compilar en Linux
(04/11/2014 07:21 PM)KISKE escribió:  
(04/11/2014 01:11 PM)Destro escribió:  viene con en el source de los modulos (al menos los default de amxx)

Y los que no vienen ?

Que jodido módulo no viene con su MakeFile en el paquete mismo?

04/11/2014 07:38 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS