プログラムをコンパイルしようとしていますLeeの基準をテストするUbuntuから。しかし、これを行うと、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
また、リンカにソースディレクトリで libarb.so を見つけることができることを知らせる Arb をインストールしなくてもライブラリをビルドし、サンプルプログラムを実行することもできます。
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.h
C インクルードパスにファイルが見つかりません。とは別に、ここでは、括弧の代わりに引用符を使用するのも悪い考えかもしれません。。あなたがビルドしたいこのテストはおそらくコンパイルされます。~に沿ってArbライブラリで使用したので、著者は引用符を使用しました。
まず、このヘッダーを提供するパッケージ(および関連ライブラリがある場合)をインストールします。このファイルはArbライブラリから提供されているようです。ここからダウンロード(ZIPダウンロード)。アーカイブをダウンロードして解凍し、適切なディレクトリを入力して次のように入力します。
$ ./configure
$ make
$ sudo make install
このconfigure
スクリプトはシステムでチェックを実行して、ビルドしているライブラリをコンパイルしてリンクできることを確認します。これが失敗した場合は、続行する前に必要なすべての依存関係をインストールする必要があります。一部の依存関係はバイナリパッケージとして提供される場合があります(配布版のドキュメントを参照)。 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のインストール方法の詳細については、以下を確認してください。このページ。 Arb を Flint 拡張機能としてインストールする方法に関する情報、およびこの特定のケースのコンパイル手順もあります。