send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[TUTORIAL]Como compilar GMP 5.1.0(The GNU Multiple Precision Arithmetic Library)

  • 5 Respuestas
  • 3792 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado avesudra

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« en: Enero 04, 2013, 08:41:38 pm »
Como compilar GMP 5.1.0(The GNU Multiple Precision Arithmetic Library)
Está estrictamente prohibido sin mi permiso copiar íntegramente el tutorial ya que ha sido un trabajo traducir la página de GMP y actualizar el antiguo tutorial que tenía, si puedes, sin embargo, basarte en él.
How to build GMP 5.1.0
¿Que es GMP?
GMP es una librería libre para operaciones aritméticas de precisión arbitraria, operando con enteros con signo, números racionales, y números de punto flotante. No hay un  límite para la precisión excepto la memoria disponible en la máquina donde se está ejecutando GMP. GMP tiene un rico set de funciones, y las funciones tienen una interfaz regular.Las principales aplicaciones de GMP son aplicaciones de criptografía e investigación, aplicaciones de seguridad de Internet, sistemas algebraicos, álgebra computacional de investigación, etc.

GMP está cuidadosamente diseñado para ser lo más rápido posible,  para pequeños y enormes operandos. La velocidad se logra mediante el uso de fullwords y con el tipo de aritmética básica, utilizando algoritmos rápidos, con alta optimización en código assembler en la mayoría de los bucles internos comunes para un montón de CPUs, y haciendo un énfasis general en la velocidad.

El lanzamiento de GMP se hizo en 1991. Está continuamente desarrollada y mantenida, con un nuevo lanzamiento cada año aproximadamente.GMP está distribuida bajo la licencia GNU LGPL. Esta licencia hace que la librería sea libre de usar, compartir, y mejorar además te permite  transmitir el resultado. La licencia da libertades, pero también establece restricciones firmes en el uso de programas no libres.

GMP es parte del proyecto GNU. Para más información sobre el proyecto GNU, por favor echa un vistazo al sitio web oficial de GNU.El objetivo principal de GMP son sistemas de tipo Unix, como GNU/Linux, Solaris, HP-UX, Mac Os X/Darwin, BSD, AIX, etc. Además se sabe que funciona en Windows en los modos de 32 bits y de 64 bits.

Categorías de  funciones de GMP

Hay varias categorías de funciones en GMP:
  • Funciones de alto nivel para aritmética de enteros con signo (mpz). Hay aproximadamente 140 funciones lógicas y aritméticas en esta categoría.
  • Funciones de alto nivel para aritmética de números racionales (mpq). Esta categoría consiste en 35 funciones, pero todas las funciones de la aritmética de enteros con signo pueden ser usadas también, aplicándolas al numerador y al denominador por separado.
  • Funciones de alto nivel para aritmética de números de punto flotante (mpf). Esta es la categoría de función de GMP que hay que usar si el tipo de C "double" no da la suficiente precisión para una aplicación. Hay aproximadamente 65 funciones en esta categoría.
  • Clases de C++ basadas en todo lo anterior. (Las funciones y los tipos de C pueden por supuesto ser usados directamente ser usados desde C++ también.)
  • Enteros positivos de bajo nivel, difíciles de usar, muchas funciones generales de bajo nivel las encontrarás en la categoría mpn. No se lleva a cabo la gestión de la memoria; la persona que llama debe asegurarse de proporcionar suficiente para los resultados. El conjunto de funciones no es siempre regular, ni tiene interfaz de llamada. Estas funciones aceptan argumentos de entrada formando parejas que consisten en un puntero a la palabra(WORD) menos significante, y un tamaño integrado que dice cuántos limbs(=words) hay en el argumento. Las funciones en las otras categorías llaman a mpn para casi todos sus cálculos
  • Soportadas externamente: funciones aritméticas de redondeo con precisión de alto nivel (mpfr). Echa un vistazo al sitio de mpfr para más información. A partir de las GMP 4.2, mpfr se libera por separado de GMP. (Los nuevos proyectos deben considerar usar mpfr en lugar del mpf del propio GMP.)

Compilando


Bueno después de todo este mamotreto vamos al lío. Para este tutorial se utilizará:
  • Windows 8 de 64 bits.(Podeis usar otro windows).
  • El compilador MinGW en su última versión de 32 bits(con el MSYS, el compilador de C, el de C++ y el MinGW Developer ToolKit).Quedándonos el setup del compilador antes de darle a instalar así:
  • El código fuente de la versión 5.1.0 de la librería.

Además de todo eso creo que no hace falta decir que el compilador debe estar puesto en la variable path etc…

Comencemos pues, nos bajamos el código fuente de GMP desde su página principal You are not allowed to view links. Register or Login:


Lo guardamos y lo descomprimimos. Lo mejor es dejar el código fuente en C:\ para compilarlo, así el compilador no se lía y no tenemos que andar con errores inesperados.Bien ahora vamos y ejecutamos MSYS desde el menú de inicio o desde la propia carpeta(si tienes Windows 8 haz esto), la cual es en cuestión:

C:\MinGW\msys\1.0

Y ejecutamos el archivo msys.bat (Archivo por lotes ejecutable), y nos saldrá una consola negra parecida al cmd de Windows.En esta consola tecleamos(cd “C:\gmp-5.1.0\gmp-5.1.0”).Después de tipear eso le damos al intro y estaremos en la carpeta del código fuente:

Después de eso tipeamos: ./configure --prefix=${gmp_install}
Cuando termine veremos esto:

Ahora tipeamos: make (esto lleva algo de tiempo)
Terminará así(sin lo ultimo que pone make install):

Cuando finalize tipeamos: make install (como está en la imagen de arriba)
Ya una vez terminado este ultimo proceso veremos esto:


Ahora cerramos la consola y creamos una carpeta en cualquier otro lado y nos vamos a C:\gmp-5.1.0\gmp-5.1.0.Una vez ahí copiamos los siguientes archivos a la otra carpeta que creamos:
  • gmp.h
  • gmp-impl.h
  • gmp-mparam.h
  • gmpxx.h
  • config.h
  • fib_table.h

Después nos vamos a la carpeta .libs que estaba dentro de la anterior cuya dirección es esta: C:\gmp-5.1.0\gmp-5.1.0\.libs y copiamos este archvo a la carpeta donde copiamos los anteriores:
  • libgmp.a

¡Y ya está listo! Ahora puedes incluir el archivo de cabecera gmp.h y empezar a leer el manual para poder hacer algo útil, al compilar tienes que enlazar con la librería libgmp.a


¡Saludos otro día explicaré un poquito de GMP!

PD: no se enfadeis los de linux , dentro de poco intentaré hacer un tuto para ubuntu.
« Última modificación: Enero 16, 2015, 09:37:28 pm por rollth »
Regístrate en You are not allowed to view links. Register or Login

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5267
  • Actividad:
    48.33%
  • Reputación 26
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Enero 04, 2013, 09:10:11 pm »
Excelente aporte! Muchisimas gracias bro!


Desconectado avesudra

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Enero 05, 2013, 10:12:14 am »
De nada ANTRAX , a ver si cuando pueda pongo un programilla compilado con esto , para que vean el potencial de esta librería.

¡Un saludo!
Regístrate en You are not allowed to view links. Register or Login

Desconectado Pr0ph3t

  • *
  • Underc0der
  • Mensajes: 443
  • Actividad:
    0%
  • Reputación 0
  • © Underc0de Team
    • Ver Perfil
  • Skype: thebrowfc
« Respuesta #3 en: Enero 05, 2013, 10:28:16 am »
Excelente aporte avesudra, me gusta tu manera de redactar. Un saludo ;)
Twitter: @The_Pr0ph3t
pr0ph3t@hotmail.es

Desconectado sr.mcbecker

  • *
  • Underc0der
  • Mensajes: 14
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • *sinrevelar!
    • Email
« Respuesta #4 en: Enero 05, 2013, 01:05:23 pm »
Ya ves esta currado podrías hacer tutoriales guappos avanzados xD
Tengo algo muy gordo entre manos!

Desconectado avesudra

  • *
  • Underc0der
  • Mensajes: 9
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Enero 05, 2013, 01:57:26 pm »
Gracias a los dos, sr.mcbecker ¿avanzados?a que te refieres  :o no soy Dennis Ritchie  :-\ . Pr0ph3t la de redactar  ;D me sorpendeis la verdad, la de redactar no se, lo que he escrito es sólo la parte de compilando hacia abajo, lo de que es gmp y eso es traducido de la pagina oficial.
« Última modificación: Enero 05, 2013, 02:03:29 pm por avesudra »
Regístrate en You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



Aprenda c++ como si estuviera en primero [PDF]

Iniciado por #;вℓσχχ0ʁ#!

Respuestas: 2
Vistas: 4202
Último mensaje Abril 01, 2018, 08:51:03 pm
por ragaza
Tutorial De Introduccion A La Programacion Estructurada En C

Iniciado por Xa0s

Respuestas: 14
Vistas: 5467
Último mensaje Junio 12, 2010, 02:58:04 am
por Xa0s
Como crear tus propias librerias(basicas) en C y como utilizarlas!

Iniciado por Jhonjhon_123

Respuestas: 5
Vistas: 23018
Último mensaje Abril 11, 2013, 11:43:08 pm
por 85
Tutorial de theForger: Win32 API

Iniciado por Jhonjhon_123

Respuestas: 0
Vistas: 1751
Último mensaje Febrero 23, 2010, 06:40:43 pm
por Jhonjhon_123
Tutorial de iniciación al lenguaje C

Iniciado por dracko.rx

Respuestas: 3
Vistas: 2108
Último mensaje Junio 28, 2012, 08:57:25 pm
por blood_rec