Como posso vincular meu programa C à biblioteca Arb?

Como posso vincular meu programa C à biblioteca Arb?

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.harquivo 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 configurescript 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-getclaro). 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-deve libmpfr-devuse apt-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.harquivo 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.

informação relacionada