Resultados 1 al 19 de 19

Tema: Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas



  1. #1
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2

    Question Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas

    Buenas, tengo las sources para sacar un ejecutable de un juego y me da un error compilando. Uso debian 9 y las siguientes librerías son necesarias para la compilación:

    apt-get update
    apt-get install git subversion autoconf build-essential pkg-config libboost-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmysqlclient-dev ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev screen libssl-dev libboost-iostreams-dev

    Cambiando libmysqlclient-dev por libmariadbclient-dev-compat ya que la primera desaparece en debian 9 y la segunda es totalmente compatible.

    Son muchos archivos .cpp, en principio sólo sale este error pero en varias líneas.

    otserv.cpp:614:18: error: invalid use of incomplete type âRSA {aka struct rsa_st}â
    BN_dec2bn(&g_RSA->q, g_config.getString(ConfigManager::RSA_PRIME2).c_st r());

    **Lineas desde la 613 a la 617:

    Código:
    BN_dec2bn(&g_RSA->p, g_config.getString(ConfigManager::RSA_PRIME1).c_str());
    BN_dec2bn(&g_RSA->q, g_config.getString(ConfigManager::RSA_PRIME2).c_str());
    BN_dec2bn(&g_RSA->d, g_config.getString(ConfigManager::RSA_PRIVATE).c_str());
    BN_dec2bn(&g_RSA->n, g_config.getString(ConfigManager::RSA_MODULUS).c_str()); 
    BN_dec2bn(&g_RSA->e, g_config.getString(ConfigManager::RSA_PUBLIC).c_str());


    ** Lineas
    627, 628 y 630:

    Código:
    BN_mod(g_RSA->dmp1, g_RSA->d, r1, ctx);
    BN_mod(g_RSA->dmq1, g_RSA->d, r2, ctx);
    BN_mod_inverse(g_RSA->iqmp, g_RSA->q, g_RSA->p, ctx);
    


    En cualquier caso no tengo problema en poner el archivo entero pero son muchas líneas.

    Pongo lo del openssl en el título ya que da algún tipo de error openssl en donde está instalado /usr/.... ; Tengo el openssl 1.1

    ¿Alguna idea de cómo solucionarlo?



  2. #2
    Tengo afiliación Premium al Chapuzas
    Fecha de ingreso
    02 jun, 16
    Mensajes
    13,714
    Agradecido: 4990
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por raylan Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Buenas, tengo las sources para sacar un ejecutable de un juego y me da un error compilando. Uso debian 9 y las siguientes librerías son necesarias para la compilación:

    apt-get update
    apt-get install git subversion autoconf build-essential pkg-config libboost-dev libgmp3-dev libxml2-dev liblua5.1-0-dev libmysqlclient-dev ccache libboost-filesystem-dev libboost-regex-dev libboost-system-dev libboost-thread-dev screen libssl-dev libboost-iostreams-dev

    Cambiando libmysqlclient-dev por libmariadbclient-dev-compat ya que la primera desaparece en debian 9 y la segunda es totalmente compatible.

    Son muchos archivos .cpp, en principio sólo sale este error pero en varias líneas.

    otserv.cpp:614:18: error: invalid use of incomplete type âRSA {aka struct rsa_st}â
    BN_dec2bn(&g_RSA->q, g_config.getString(ConfigManager::RSA_PRIME2).c_st r());

    **Lineas desde la 613 a la 617:

    Código:
    BN_dec2bn(&g_RSA->p, g_config.getString(ConfigManager::RSA_PRIME1).c_str());
    BN_dec2bn(&g_RSA->q, g_config.getString(ConfigManager::RSA_PRIME2).c_str());
    BN_dec2bn(&g_RSA->d, g_config.getString(ConfigManager::RSA_PRIVATE).c_str());
    BN_dec2bn(&g_RSA->n, g_config.getString(ConfigManager::RSA_MODULUS).c_str()); 
    BN_dec2bn(&g_RSA->e, g_config.getString(ConfigManager::RSA_PUBLIC).c_str());


    ** Lineas
    627, 628 y 630:

    Código:
    BN_mod(g_RSA->dmp1, g_RSA->d, r1, ctx);
    BN_mod(g_RSA->dmq1, g_RSA->d, r2, ctx);
    BN_mod_inverse(g_RSA->iqmp, g_RSA->q, g_RSA->p, ctx);
    


    En cualquier caso no tengo problema en poner el archivo entero pero son muchas líneas.

    Pongo lo del openssl en el título ya que da algún tipo de error openssl en donde está instalado /usr/.... ; Tengo el openssl 1.1

    ¿Alguna idea de cómo solucionarlo?


    Tienes q dar más información. Que juego es por ejemplo???

    Intenta satisfacer todas las dependencias que te pida ./configure incluso las que son optativas principalmente las que tienen q ver con el SSL

  3. #3
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Buenas @tasadarf

    El juego... es algo difícil de explicar. El juego en sí es el tibia, sólo que la comunidad de otland creó en su momento (y sigue creando) repositorios que se adaptan a según que versiones. Están tfs 1, 0.4, 0.3.6.... etc Esta sin embargo, se aleja un poco de eso ya que es un trabajo muy editado que hicieron varias personas creo que en Mexico. La idea es que el juego funcione igual que tibia pero con funciones de pokemon, naruto, dragon ball... En cualquier caso aquí están los repositorios oficiales y aquí cómo compilarlo en Linux.

    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por tasadarf Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Intenta satisfacer todas las dependencias que te pida ./configure incluso las que son optativas principalmente las que tienen q ver con el SSL
    Con esto no sé exactamente lo que me quieres decir exactamente.

    Sé que hay un montón de issues cerrados en el propio git y he abierto uno allí, pero me da la sensación de que está un poco parado el tema, por eso aproveché y abrí aquí el tema.

    TODOS los archivos de las sources son .cpp y falla algo en la estructura de esas frases. De hecho me pasó ya algo parecido compilando el ejecutable para tfs 0.4 (este si que es tibia original, sin capas de dragon ball ni leches) pero buscando el error lo solucionaban en varios hilos de otland y consistía en quitar unas comillas, cambiar una palabra de cuatro letras por una de tres.... algo muy simple, pero que obviamente se me escapa al no saber de C++. Pienso que en esta ocasión es algo parecido con las líneas que he puesto en el OP.

  4. #4
    Tengo afiliación Premium al Chapuzas
    Fecha de ingreso
    02 jun, 16
    Mensajes
    13,714
    Agradecido: 4990
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por raylan Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Buenas @tasadarf

    El juego... es algo difícil de explicar. El juego en sí es el tibia, sólo que la comunidad de otland creó en su momento (y sigue creando) repositorios que se adaptan a según que versiones. Están tfs 1, 0.4, 0.3.6.... etc Esta sin embargo, se aleja un poco de eso ya que es un trabajo muy editado que hicieron varias personas creo que en Mexico. La idea es que el juego funcione igual que tibia pero con funciones de pokemon, naruto, dragon ball... En cualquier caso aquí están los repositorios oficiales y aquí cómo compilarlo en Linux.



    Con esto no sé exactamente lo que me quieres decir exactamente.

    Sé que hay un montón de issues cerrados en el propio git y he abierto uno allí, pero me da la sensación de que está un poco parado el tema, por eso aproveché y abrí aquí el tema.

    TODOS los archivos de las sources son .cpp y falla algo en la estructura de esas frases. De hecho me pasó ya algo parecido compilando el ejecutable para tfs 0.4 (este si que es tibia original, sin capas de dragon ball ni leches) pero buscando el error lo solucionaban en varios hilos de otland y consistía en quitar unas comillas, cambiar una palabra de cuatro letras por una de tres.... algo muy simple, pero que obviamente se me escapa al no saber de C++. Pienso que en esta ocasión es algo parecido con las líneas que he puesto en el OP.
    Este finde le echare un vistazo por encima ya que mis conocimientos de c++ son muy basicos, me centrare si hay alguna alerta diferente que se pueda solucionar. Que diferencia hay entre eso server 2 y server 3 OTX

  5. #5
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por tasadarf Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Este finde le echare un vistazo por encima ya que mis conocimientos de c++ son muy basicos, me centrare si hay alguna alerta diferente que se pueda solucionar. Que diferencia hay entre eso server 2 y server 3 OTX
    En el propio github me dicen que instale openssl 1.0.2 pero he leído que puede ser contraproducente para el sistema operativo además de que se hace de una manera algo compleja... Después de eso me ha closeado el issue lol

    El tema es que yo he comprado un datapack a una persona que ahí no aparece, pero en principio las sources son las mismas aunque he visto que han metido nuevos "paths"... Pero vamos que el error que me daba a mi lo ha puesto otra persona también. El autor del git cierra nuestros issues lol

  6. #6
    Tengo afiliación Premium al Chapuzas
    Fecha de ingreso
    02 jun, 16
    Mensajes
    13,714
    Agradecido: 4990
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por raylan Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    En el propio github me dicen que instale openssl 1.0.2 pero he leído que puede ser contraproducente para el sistema operativo además de que se hace de una manera algo compleja... Después de eso me ha closeado el issue lol

    El tema es que yo he comprado un datapack a una persona que ahí no aparece, pero en principio las sources son las mismas aunque he visto que han metido nuevos "paths"... Pero vamos que el error que me daba a mi lo ha puesto otra persona también. El autor del git cierra nuestros issues lol
    Ya te contaré xq una de las 2 formas de instalación incluye el ./configure que te comenté y de ahí se puede sacar bastante información

  7. #7
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Pongo un up por aquí a ver si hay suerte Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas

  8. #8
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Up a ver si alguien nuevo lo lee...

  9. #9
    Capitaaaan cavernicolaaaa Avatar de Annubis
    Fecha de ingreso
    02 sep, 13
    Ubicación
    Ultramemia
    Mensajes
    9,634
    Agradecido: 521
    ¿openssl-dev está instalado? Pega sólo las últimas líneas del log de la parte del configure:

    Código:
    ./configure --enable-server-diag --enable-mysql --enable-root-permission

  10. #10
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por Annubis Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    ¿openssl-dev está instalado? Pega sólo las últimas líneas del log de la parte del configure:

    Código:
    ./configure --enable-server-diag --enable-mysql --enable-root-permission
    Sí que lo tengo instalado, el problema es que al ser debian 9 igual hay algún problema y las sources no se hicieron para un SO nuevo.

    :~# ./configure --enable-mysql --enable-root-permission
    -bash: ./configure: No existe el fichero o el directorio


    Hasta ahora he compilado otros TFS (sources parecidas) sin mayor problema...

  11. #11
    Capitaaaan cavernicolaaaa Avatar de Annubis
    Fecha de ingreso
    02 sep, 13
    Ubicación
    Ultramemia
    Mensajes
    9,634
    Agradecido: 521
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por raylan Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    :~# ./configure --enable-mysql --enable-root-permission
    -bash: ./configure: No existe el fichero o el directorio
    Tienes que ejecutar el configure desde el directorio donde tienes las fuentes. Además, mejor no compiles como root.

  12. #12
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por Annubis Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Tienes que ejecutar el configure desde el directorio donde tienes las fuentes. Además, mejor no compiles como root.
    Ahhh vale, ahora edito este mensaje entonces, pensaba que era algo del sistema el configure. Como verás sé lo justito de linux, por eso voy con root etc. Por qué es mejor compilar con otro usuario?

    Código:
    checking for main in -lcrypto... yeschecking for main in -lboost_thread-gcc-mt... no
    checking for main in -lboost_thread-mt... no
    checking for main in -lboost_thread... yes
    checking for main in -lboost_regex-gcc-mt... no
    checking for main in -lboost_regex-mt... no
    checking for main in -lboost_regex... yes
    checking for main in -lboost_system-gcc-mt... no
    checking for main in -lboost_system-mt... no
    checking for main in -lboost_system... yes
    checking for main in -lboost_date_time-gcc-mt... no
    checking for main in -lboost_date_time-mt... no
    checking for main in -lboost_date_time... yes
    checking for main in -lboost_filesystem-gcc-mt... no
    checking for main in -lboost_filesystem-mt... no
    checking for main in -lboost_filesystem... yes
    checking for LUA... no
    checking lua.h usability... no
    checking lua.h presence... no
    checking for lua.h... no
    checking lua5.1/lua.h usability... yes
    checking lua5.1/lua.h presence... yes
    checking for lua5.1/lua.h... yes
    checking for main in -llua... no
    checking for main in -llua5.1... yes
    checking mysql/mysql.h usability... yes
    checking mysql/mysql.h presence... yes
    checking for mysql/mysql.h... yes
    checking for main in -lmysqlclient... yes
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating config.h
    config.status: config.h is unchanged
    config.status: executing depfiles commands
    
    
    otxserver 2.X.Series
    
    
    Using LuaJIT................ : no
    Using ground cache.......... : no
    Server diagnostics.......... : yes
    Home-directory configuration : no
    Root run permission......... : yes
    Login server mode........... : no
    OTAdmin protocol............ : no
    OTServ custom allocator..... : no
    Debug build................. : no
    
    
    Build with MySQL............ : yes
    Build with MySQL++Connector. : no
    Build with SQLite........... : no
    Build with PostgreSQL....... : no
    
    
    Configure complete, now you may type './build.sh'.
    @Annubis si necesitas que ponga algo más de log me dices.
    Última edición por raylan; 17/07/2019 a las 14:27 Razón: edit

  13. #13
    Capitaaaan cavernicolaaaa Avatar de Annubis
    Fecha de ingreso
    02 sep, 13
    Ubicación
    Ultramemia
    Mensajes
    9,634
    Agradecido: 521
    Parece que el configure termina bien, ejecuta la última parte:

    Código:
    make -j $(nproc)
    Y pega el log

  14. #14
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Código:
    make  all-am
    make[1]: se entra en el directorio '/home/poketibia/src'
      CXX      otserv.o
    otserv.cpp: In function âvoid otserv(StringVec, ServiceManager*)â:
    otserv.cpp:613:28: error: âRSA_get0_pâ was not declared in this scope
      BN_dec2bn(RSA_get0_p(g_RSA), g_config.getString(ConfigManager::RSA_PRIME1).c_str());
                                ^
    otserv.cpp:614:28: error: âRSA_get0_qâ was not declared in this scope
      BN_dec2bn(RSA_get0_q(g_RSA), g_config.getString(ConfigManager::RSA_PRIME2).c_str());
                                ^
    otserv.cpp:615:28: error: âRSA_get0_dâ was not declared in this scope
      BN_dec2bn(RSA_get0_d(g_RSA), g_config.getString(ConfigManager::RSA_PRIVATE).c_str());
                                ^
    otserv.cpp:616:28: error: âRSA_get0_nâ was not declared in this scope
      BN_dec2bn(RSA_get0_n(g_RSA), g_config.getString(ConfigManager::RSA_MODULUS).c_str());
                                ^
    otserv.cpp:617:28: error: âRSA_get0_eâ was not declared in this scope
      BN_dec2bn(RSA_get0_e(g_RSA), g_config.getString(ConfigManager::RSA_PUBLIC).c_str());
                                ^
    In file included from /usr/include/openssl/asn1.h:24:0,
                     from /usr/include/openssl/rsa.h:16,
                     from otserv.cpp:44:
    otserv.cpp:628:21: error: âRSA_get0_dmp1â was not declared in this scope
      RSA_get0_dmp1(g_RSA),
                         ^
    otserv.cpp:641:21: error: âRSA_get0_iqmpâ was not declared in this scope
      RSA_get0_iqmp(g_RSA),
                         ^
    Makefile:565: fallo en las instrucciones para el objetivo 'otserv.o'
    make[1]: *** [otserv.o] Error 1
    make[1]: se sale del directorio '/home/poketibia/src'
    Makefile:417: fallo en las instrucciones para el objetivo 'all'
    make: *** [all] Error 2

  15. #15
    Capitaaaan cavernicolaaaa Avatar de Annubis
    Fecha de ingreso
    02 sep, 13
    Ubicación
    Ultramemia
    Mensajes
    9,634
    Agradecido: 521
    Como ya sospechabas, el problema está en que tu openssl es demasiado nuevo, según ésta lista de correo y los enlaces que proporciona:

    Error RSA compiling executable of a cust - C++ Forum
    rsa_st definition is absent * Issue #1604 * openssl/openssl * GitHub
    RSA_get0_key(3ssl) — libssl-doc — Debian unstable — Debian Manpages

    Es decir, esas llamadas que dan error, lo dan porque a partir de openssl 1.1.0 dejaron de ser compatibles.

    La soluciones que tienes pasan por instalar un openssl más antiguo y compatible con el código que tú tienes en el sistema que ya tienes instalado; instalar una Debian más antigua que tenga ese openssl o usar un código adaptado a una nueva versión de openssl.

  16. #16
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Hola Annubis. Muchas gracias, pensaba que habría una solución cogida por pinzas cambiando algo de esas líneas de código que dan error... Pero si me dices que hay que usar un código adaptado a la nueva versión de openssl igual consiste en cambiar algo más que 6 líneas... Por cierto, el primer link de los que pasas es un thread también mío que abrí en esa web (c++ forum)

    Adquirir otro debian en mi dedicado ahora mismo es improbable ya que hace menos de 7 meses que lo tengo y he configurado todo perfecto, a parte de que tengo varias aplicaciones actives y online que no puedo parar... Se me ocurre instalar uno más viejo en una máquina virtual (me dijeron que ubuntu también serviría) para simplemente compilar el ejecutable y ya usarlo en el dedicado, supongo que funcionaría.

    Lo malo de bajar de versión el openssl es que el resto de sources que he compilado me han ido de 10 y tengo miedo de que falle algo sólo por este juego. En cualquier caso es fácil instalar un openssl más antiguo? En su día busqué información y me echó para atrás un comentario de una persona que no lo recomendaba...


    Pd. Si alguien que lea el mensaje usa una versión inferior de debian o usa ubuntu me haría un gran favor compilándome estas sources, se las podría pasar por privado.

  17. #17
    Tengo afiliación Premium al Chapuzas
    Fecha de ingreso
    02 jun, 16
    Mensajes
    13,714
    Agradecido: 4990
    Había olvidado completamente este tema, yo tengo Ubuntu 18.04 si la necesitáis y si no con una máquina virtual puedes trastear lo q quieras

    Enviado desde mi Mi 9T mediante Tapatalk

  18. #18
    Chapuzillas del montón
    Fecha de ingreso
    19 jun, 16
    Mensajes
    49
    Agradecido: 2
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por tasadarf Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Había olvidado completamente este tema, yo tengo Ubuntu 18.04 si la necesitáis y si no con una máquina virtual puedes trastear lo q quieras

    Enviado desde mi Mi 9T mediante Tapatalk
    Hola @tasadarf !

    El tema es que si compilo o alguien me compila el ejecutable funcionará luego en mi dedicado, donde no ha sido posible compilarlo? Simplemente así cortando y pegándolo?

  19. #19
    Tengo afiliación Premium al Chapuzas
    Fecha de ingreso
    02 jun, 16
    Mensajes
    13,714
    Agradecido: 4990
    Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas Iniciado por raylan Error compilando ejecutable de juego en C++ en debian 9 ¿openssl? +Añado lineas
    Hola @tasadarf !

    El tema es que si compilo o alguien me compila el ejecutable funcionará luego en mi dedicado, donde no ha sido posible compilarlo? Simplemente así cortando y pegándolo?
    En principio sí el problema es solo de compilación si que funcionaría. Ya que en principio tus versiones son más modernas y en principio retrocompatibles. Pero no está asegurado xq al compilarlo en una máquina antigua no solo usa esa librería usa más y en algún caso puede que haya ruptura de versiones y tengas q instalar una versión antigua de la librería para q sea compatible. Por probar no pierdes nada

Etiquetas para este tema

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  

Hacemos uso de cookies propias y de terceros para proporcionar una mejor experiencia de usuario. Al seguir navegando entendemos que acepta nuestra Más información .

Aceptar