
Eu tentei compilar o programaTestando o critério de Lino Ubuntu. No entanto, quando faço isso gcc demo.c
, obtenho a saída como,
demo.c:2:19: fatal error: fmpcb.h: No such file or directory
#include "fmpcb.h"
^
compilation terminated.
Como posso compilar esse programa? Acho que preciso de algum script bash para fazer a compilação funcionar.
Responder1
O arquivo fmpcb.h não existe mais na versão mais recente do Arb. Os tipos fmprb_t e fmpcb_t no Arb 1.x foram obsoletos pelos tipos (mais eficientes) arb_t e acb_t no Arb 2.x. A versão mais recente removeu totalmente o tipo herdado fmpcb_t.
Você deve conseguir fazer com que o código dessa postagem do blog funcione substituindo fmprb -> arb e fmpcb -> acb e possivelmente fazendo outros pequenos ajustes.
No entanto, uma solução melhor é usar o programa de exemplo Keiper-Li que está incluído no Arb:
https://github.com/fredrik-johansson/arb/blob/master/examples/keiper_li.c
Esta é basicamente uma versão melhor do programa na postagem do blog. É mais rápido, suporta multithreading, permite passar argumentos na linha de comando em vez de recompilar e deve estar atualizado com a interface atual.
No diretório de origem do Arb, você pode construir e executar o programa de exemplo da seguinte maneira (assumindo que o Arb já tenha sido instalado):
cd /home/user/src/arb
make examples
build/examples/keiper_li 100
Você também pode construir a biblioteca e executar programas de exemplo sem instalar o Arb, informando ao vinculador que ele pode encontrar libarb.so no diretório de origem:
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 documentação dos programas de exemplo Arb, consulte:http://fredrikj.net/arb/examples.html
Responder2
O fmpcb.h
arquivo não pode ser encontrado no caminho de inclusão C. Além do mais,usar aspas em vez de colchetes aqui provavelmente também é uma má ideia. Este teste que você está tentando construir provavelmente se destina a ser compiladojuntocom a biblioteca Arb, e é por isso que o autor está usando aspas.
Em primeiro lugar, instale o pacote que fornece este arquivo de cabeçalho (e, claro, a biblioteca associada, se houver alguma). Este arquivo parece ser fornecido pela biblioteca Arb, que pode serbaixado aqui (Baixar ZIP). Depois de baixar e extrair o arquivo, entre em seu diretório e digite:
$ ./configure
$ make
$ sudo make install
O configure
script executará verificações em seu sistema para garantir que ele possa compilar e vincular a biblioteca que você está construindo. Se falhar, você terá que instalar todas as dependências necessárias antes de prosseguir. Algumas dependências podem ser fornecidas como pacotes binários (veja a documentação da sua distribuição), outras não (nesse caso você terá que ler suas instruções, geralmente um arquivo README ou INSTALL no arquivo da biblioteca). De acordo com a página Git do Arb, você terá algumas instalações para fazer:
Arb depende de FLINT (http://flintlib.org/), MPIR (http://mpir.org) e MPFR (http://mpfr.org). Ele pode ser construído como uma biblioteca independente ou como parte do FLINT como um pacote de extensão opcional.
Nota:Meu sistema Ubuntu fornece pacotes binários para libflint (libflint-dev) e MPFR (libmpfr-dev). Você pode instalá-los com:
$ sudo apt-get install libflint-dev libmpfr-dev
(desde que o seu gerenciador de pacotes seja, é apt-get
claro). MPIR pode serbaixado aquie instalado usando outro arquivo ./configure && make && sudo make install
. De acordo coma documentação MPIR, não há dependência para instalar antes de compilar a biblioteca. Contudo:
- Instale
libflint-dev
elibmpfr-dev
useapt-get
, ou compile-os você mesmo junto com suas respectivas dependências, se houver. - Baixe a biblioteca MPIR, compile-a (veja seu arquivo README ou o PDF da documentação que linkei acima) e instale-a.
- Baixe a biblioteca Arb, compile e instale-a.
Depois que a biblioteca Arb for criada e instalada em seu sistema, o fmpcb.h
arquivo deverá estar disponível em /usr/local/include/fmpcb.h
(exceto se sua distribuição usar outro caminho). Você também encontrará os arquivos da biblioteca em formato /usr/local/lib
. Como o arquivo de cabeçalho está em um diretório do sistema (caminho de inclusão C), você terá que usar colchetes em vez de aspas em seu código:
#include <fmpcb.h>
Agora, se você quiser compilar e vincular essa biblioteca recém-instalada, você terá que dizer ao compilador para fazer isso:
$ gcc -I/usr/local/include -L/usr/local/lib -larb yourprogram.c -o yourprogram
$ ./yourprogram
Para obter mais informações sobre como instalar o Arb, dê uma olhada emesta página. Você também encontrará informações sobre a instalação do Arb como uma extensão do Flint e a compilação de instruções para esta situação específica.