
Intenté compilar el programa.Probando el criterio de Lien ubuntu. Sin embargo, cuando lo hago gcc demo.c
, obtengo el resultado como,
demo.c:2:19: fatal error: fmpcb.h: No such file or directory
#include "fmpcb.h"
^
compilation terminated.
¿Cómo puedo compilar ese programa? Creo que necesito algún script bash para que la compilación funcione.
Respuesta1
El archivo fmpcb.h ya no existe en la versión más reciente de Arb. Los tipos fmprb_t y fmpcb_t en Arb 1.x quedaron obsoletos por los tipos (más eficientes) arb_t y acb_t en Arb 2.x. La versión más reciente eliminó por completo el tipo fmpcb_t heredado.
Debería poder hacer funcionar el código de esa publicación de blog sustituyendo fmprb -> arb y fmpcb -> acb y posiblemente realizando otros ajustes menores.
Sin embargo, una mejor solución es utilizar el programa de ejemplo Keiper-Li que se incluye en Arb:
https://github.com/fredrik-johansson/arb/blob/master/examples/keiper_li.c
Esta es básicamente una versión mejor del programa en la publicación del blog. Es más rápido, admite subprocesos múltiples, le permite pasar argumentos en la línea de comando en lugar de volver a compilar y debería estar actualizado con la interfaz actual.
Desde el directorio fuente de Arb, puede compilar y ejecutar el programa de ejemplo de la siguiente manera (suponiendo que Arb ya esté instalado):
cd /home/user/src/arb
make examples
build/examples/keiper_li 100
También puede crear la biblioteca y ejecutar programas de ejemplo sin instalar Arb, diciéndole al vinculador que puede encontrar libarb.so en el directorio fuente:
cd /home/user/src/arb
make
export LD_LIBRARY_PATH=/home/user/src/arb:$LD_LIBRARY_PATH
make examples
build/examples/keiper_li 100
Para obtener documentación de los programas de ejemplo de Arb, consulte:http://fredrikj.net/arb/examples.html
Respuesta2
El fmpcb.h
archivo no se puede encontrar en la ruta de inclusión de C. Además,usar comillas en lugar de corchetes aquí probablemente también sea una mala idea. Esta prueba que estás intentando construir probablemente esté destinada a ser compiladaa lo largo decon la biblioteca Arb, razón por la cual el autor utiliza comillas.
Lo primero es instalar el paquete que proporciona este archivo de encabezado (y, por supuesto, la biblioteca asociada, si la hay). Este archivo parece ser proporcionado por la biblioteca Arb, que puede serdescargado aquí (Descargar ZIP). Una vez que haya descargado y extraído el archivo, ingrese a su directorio y escriba:
$ ./configure
$ make
$ sudo make install
El configure
script ejecutará comprobaciones en su sistema para asegurarse de que pueda compilar y vincular la biblioteca que está creando. Si falla, deberá instalar todas las dependencias necesarias antes de continuar. Algunas dependencias pueden proporcionarse como paquetes binarios (consulte la documentación de su distribución), otras no (en cuyo caso tendrá que leer sus instrucciones, generalmente un archivo README o INSTALL en el archivo de la biblioteca). Según la página Git de Arb, tendrás que realizar algunas instalaciones:
Arb depende de FLINT (http://flintlib.org/), MPIR (http://mpir.org) y MPFR (http://mpfr.org). Puede construirse como una biblioteca independiente o como parte de FLINT como un paquete de extensión opcional.
Nota al margen:Mi sistema Ubuntu proporciona paquetes binarios para libflint (libflint-dev) y MPFR (libmpfr-dev). Puedes instalarlos con:
$ sudo apt-get install libflint-dev libmpfr-dev
(siempre que su administrador de paquetes lo sea, apt-get
por supuesto). MPIR puede serdescargado aquí, y se instala usando otro típico ./configure && make && sudo make install
. De acuerdo ala documentación MPIR, no hay ninguna dependencia que instalar antes de compilar la biblioteca. Considerándolo todo:
- Instálelos
libflint-dev
ylibmpfr-dev
utilícelosapt-get
, o compílelos usted mismo junto con sus respectivas dependencias, si las tienen. - Descargue la biblioteca MPIR, compílela (consulte su archivo README o la documentación PDF que vinculé arriba) e instálela.
- Descargue la biblioteca Arb, compílela e instálela.
Una vez que la biblioteca Arb se haya creado e instalado en su sistema, el fmpcb.h
archivo debería estar disponible en /usr/local/include/fmpcb.h
(excepto si su distribución utiliza otra ruta). También encontrará los archivos de la biblioteca en formato /usr/local/lib
. Dado que el archivo de encabezado está en un directorio del sistema (ruta de inclusión C), deberá usar corchetes en lugar de comillas en su código:
#include <fmpcb.h>
Ahora, si desea compilar y vincular esta biblioteca recién instalada, deberá indicarle al compilador que lo haga:
$ gcc -I/usr/local/include -L/usr/local/lib -larb yourprogram.c -o yourprogram
$ ./yourprogram
Para obtener más información sobre cómo instalar Arb, consulteesta página. También encontrará información sobre la instalación de Arb como una extensión de Flint y cómo compilar instrucciones para esta situación particular.