내 C 프로그램을 Arb 라이브러리에 연결하려면 어떻게 해야 합니까?

내 C 프로그램을 Arb 라이브러리에 연결하려면 어떻게 해야 합니까?

프로그램을 컴파일해 보았습니다.Li의 기준 테스트우분투에서. 그러나 내가 할 때 gcc demo.c출력은 다음과 같습니다.

demo.c:2:19: fatal error: fmpcb.h: No such file or directory
 #include "fmpcb.h"
                   ^
compilation terminated.

해당 프로그램을 어떻게 컴파일할 수 있나요? 컴파일이 작동하려면 bash 스크립트가 필요하다고 생각합니다.

답변1

최신 버전의 Arb에는 fmpcb.h 파일이 더 이상 존재하지 않습니다. Arb 1.x의 fmprb_t 및 fmpcb_t 유형은 Arb 2.x의 (더 효율적인) arb_t 및 acb_t 유형에 의해 더 이상 사용되지 않습니다. 최신 릴리스에서는 레거시 fmpcb_t 유형이 완전히 제거되었습니다.

fmprb -> arb 및 fmpcb -> acb를 대체하고 다른 사소한 조정을 수행하여 해당 블로그 게시물의 코드를 작동시킬 수 있어야 합니다.

그러나 더 나은 해결책은 Arb에 포함된 Keiper-Li 예제 프로그램을 사용하는 것입니다.

https://github.com/fredrik-johansson/arb/blob/master/examples/keiper_li.c

이것은 기본적으로 블로그 게시물에 있는 프로그램의 더 나은 버전입니다. 더 빠르고, 멀티스레딩을 지원하고, 다시 컴파일하는 대신 명령줄에서 인수를 전달할 수 있으며, 현재 인터페이스에서 최신 상태여야 합니다.

Arb 소스 디렉터리에서 다음과 같이 예제 프로그램을 빌드하고 실행할 수 있습니다(Arb가 이미 설치되어 있다고 가정).

cd /home/user/src/arb
make examples
build/examples/keiper_li 100

Arb를 설치하지 않고도 링커에게 소스 디렉터리에서 libarb.so를 찾을 수 있다고 알려 라이브러리를 빌드하고 예제 프로그램을 실행할 수도 있습니다.

cd /home/user/src/arb
make
export LD_LIBRARY_PATH=/home/user/src/arb:$LD_LIBRARY_PATH
make examples
build/examples/keiper_li 100

Arb 예제 프로그램에 대한 문서는 다음을 참조하십시오.http://fredrikj.net/arb/examples.html

답변2

fmpcb.hC 포함 경로에서 파일을 찾을 수 없습니다 . 게다가,여기서 대괄호 대신 따옴표를 사용하는 것도 나쁜 생각일 수 있습니다.. 여러분이 빌드하려는 이 테스트는 아마도 컴파일되도록 의도되었을 것입니다.~을 따라Arb 라이브러리를 사용하므로 저자가 따옴표를 사용합니다.

먼저, 이 헤더 파일을 제공하는 패키지(및 관련 라이브러리가 있는 경우)를 설치합니다. 이 파일은 Arb 라이브러리에서 제공되는 것으로 보입니다.여기에서 다운로드했습니다(ZIP 다운로드).. 아카이브를 다운로드하고 추출한 후 해당 디렉토리를 입력하고 다음을 입력하십시오.

$ ./configure
$ make
$ sudo make install

스크립트 configure는 시스템에서 검사를 실행하여 빌드 중인 라이브러리를 컴파일하고 링크할 수 있는지 확인합니다. 실패하면 더 진행하기 전에 필요한 모든 종속성을 설치해야 합니다. 일부 종속성은 바이너리 패키지로 제공될 수 있으며(배포판 문서 참조) 일부는 그렇지 않을 수도 있습니다(이 경우 일반적으로 라이브러리 아카이브의 README 또는 INSTALL 파일과 같은 지침을 읽어야 합니다). Arb의 Git 페이지에 따르면 다음과 같은 몇 가지 설치가 필요합니다.

Arb는 FLINT(http://flintlib.org/), MPIR(http://mpir.org) 및 MPFR(http://mpfr.org). 독립 실행형 라이브러리로 구축하거나 선택적 확장 패키지로 FLINT의 일부로 구축할 수 있습니다.

참고 사항:내 Ubuntu 시스템은 libflint(libflint-dev) 및 MPFR(libmpfr-dev)용 바이너리 패키지를 제공합니다. 다음을 사용하여 설치할 수 있습니다.

$ sudo apt-get install libflint-dev libmpfr-dev

(물론 패키지 관리자가 있는 경우 apt-get) MPIR은 다음과 같습니다.여기에서 다운로드, 또 다른 일반적인 ./configure && make && sudo make install. 에 따르면MPIR 문서, 라이브러리를 컴파일하기 전에 설치할 종속성이 없습니다. 전체적으로:

  • 를 설치하여 libflint-dev사용 libmpfr-dev하거나 apt-get해당 종속성이 있는 경우 해당 종속성과 함께 직접 컴파일하십시오.
  • MPIR 라이브러리를 다운로드하고 컴파일한 다음(README 파일 또는 위에 링크한 문서 PDF 참조) 설치합니다.
  • Arb 라이브러리를 다운로드하고 컴파일하고 설치합니다.

Arb 라이브러리가 구축되어 시스템에 설치되면 fmpcb.h파일을 사용할 수 있습니다 /usr/local/include/fmpcb.h(배포판이 다른 경로를 사용하는 경우 제외). 에서도 라이브러리 파일을 찾을 수 있습니다 /usr/local/lib. 헤더 파일은 시스템 디렉터리(C 포함 경로)에 있으므로 코드에서 따옴표 대신 대괄호를 사용해야 합니다.

#include <fmpcb.h>

이제 새로 설치된 라이브러리에 대해 컴파일하고 링크하려면 컴파일러에 그렇게 하도록 지시해야 합니다.

$ gcc -I/usr/local/include -L/usr/local/lib -larb yourprogram.c -o yourprogram
$ ./yourprogram

Arb 설치 방법에 대한 자세한 내용은 다음을 참조하세요.이 페이지. 또한 Flint의 확장으로 Arb를 설치하는 방법과 이 특정 상황에 대한 지침을 컴파일하는 방법에 대한 정보도 찾을 수 있습니다.

관련 정보