
したがって、MPFRをインストールするときによく犯される間違いは、libgmpバージョンを2つ以上インストールするとエラーが発生することです。これはインストールファイルでよく説明されています。
私が実行すると、locate libgmp
結果は次のようになります。
/home/lee/maple16/bin.IBM_INTEL_LINUX/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON256/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON256/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON256/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON512/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON512/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLON512/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLONXPSSE1/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLONXPSSE1/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/ATHLONXPSSE1/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/P4SSE2/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/P4SSE2/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/P4SSE2/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIII/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIII/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIII/libgmp.so.3.4.1
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIIISSE1/libgmp.so
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIIISSE1/libgmp.so.3
/home/lee/maple16/bin.IBM_INTEL_LINUX/PIIISSE1/libgmp.so.3.4.1
/usr/lib/i386-linux-gnu/libgmp.so.10
/usr/lib/i386-linux-gnu/libgmp.so.10.0.2
/usr/lib/i386-linux-gnu/openssl-1.0.0/engines/libgmp.so
/usr/local/Wolfram/Mathematica/7.0/SystemFiles/Libraries/Linux/libgmp.so.3
/usr/local/Wolfram/Mathematica/7.0/SystemFiles/Libraries/Linux-x86-64 /libgmp.so.3
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Libraries/Linux/libgmp.so.10
/usr/local/Wolfram/Mathematica/8.0/SystemFiles/Libraries/Linux-x86-64 /libgmp.so.10
/usr/share/doc/libgmp10
/usr/share/doc/libgmp10/README.Debian
/usr/share/doc/libgmp10/TODO.Debian
/usr/share/doc/libgmp10/changelog.Debian.gz
/usr/share/doc/libgmp10/copyright
/var/lib/dpkg/info/libgmp10:i386.list
/var/lib/dpkg/info/libgmp10:i386.md5sums
/var/lib/dpkg/info/libgmp10:i386.postinst
/var/lib/dpkg/info/libgmp10:i386.postrm
/var/lib/dpkg/info/libgmp10:i386.shlibs
実際に使用したいバージョンがインストールされたばかりで表示されました/usr/local/lib
(上記には表示されないのは驚きですか?).インストール文書には、これが本当なら、次のように記載されています。
If you want to use the GMP version under /usr/local, then you
should uninstall all the other GMP versions (header and library
files) that may be seen in the search paths, but *NOT* the one
under /usr (the version under /usr is provided by the OS vendor,
and changing/removing anything related to it may break your
system, and /usr should have a lower precedence than /usr/local
anyway).
しかし、正確に何を削除するのか、どのように削除するのかわかりません。そしてlocate libgmp
以下のものはとにかく見つかりません。私は/usr
MapleやMathematicaが私のために死にたくありません...
export CPLUS_INCLUDE_PATH=usr/local/include , export C_INCLUDE_PATH=usr/local/include, export LIBRARY_PATH=usr/local/lib, export LD_LIBRARY_PATH=usr/local/lib, export LD_RUN_PATH=usr/local/lib
役に立つかもしれない他の場所で読んだように、他の修正を試しましたが、役に立ちませんでした。最新のパッチも適用してみました。
私は間違いなく/usr/lib/i386-linux-gnu/からlibgmp.so.10.0.2とlibgmp.so.10を削除しましたが、これはgccの動作に大きな問題を引き起こしているようです.
答え1
私が実際に使用したいバージョンはちょうどインストールされ、/usr/local/libで見ることができます。 (上に表示されないのは驚きですか?)
locate
定期的にデータベースを再構築してくださいupdatedb
。実行updatedb
中にシステムにファイルを追加すると、当然そのlocate
ファイルは表示されません。 (このデータベースはlocate
ファイルシステム全体よりはるかに高速ですfind
。欠点は、出力が古くなる可能性があることです。)
強制的に再実行する方法がありますが、updatedb
その方法は特定のLinuxディストリビューションによって異なり、それに関係なく他の問題になります。
何を削除するのか、どのように削除するのかわかりません。削除する必要がありますか?
いいえ、MapleとMathematicaのコピーを削除しないでください。インストーラがこれらのパスをコンパイラのデフォルトライブラリ検索パスに追加した可能性はほとんどありません。
次のコマンドを使用して確認できます。
$ ld --verbose | grep SEARCH
出力にorを表示しないでください~/maple
。/usr/local/Wolfram
/ usrの下でもlibgmpが見つかりません。
実はそうです。ライブラリはドキュメントが参照するライブラリです/usr/lib/i386-linux-gnu
。INSTALL
このINSTALL
文書は実際には既存の単純な*ixシステムにのみ適用されます。時々*ixesはファイルを直接保存することに関連しています/usr/lib
。これはx86 Linuxの世界で進行中の32ビットから64ビットへの移行によるものです。
いつか32ビットシステムがすべて消えると、Linuxディストリビューションは以前の/usr/lib
スタイルに戻ることができます。
あなたのシステムは、Linuxでも普遍的ではないスキームを使用しているようです。もう一つの一般的な解決策は、32ビットライブラリ/usr/lib
を/usr/lib64
。
ここで重要なのは、/usr/local/lib
正しいタスクを実行するために、これらのシステムライブラリディレクトリがパッケージのビルドシステムよりも前にあることができないことです。ld
上記のコマンドがこれを知らせます。/usr/local/lib
MPFRクリエイターが前提としたほどリードしていないことが判明した場合は、次の/usr/lib*
方法を見つける必要があります。プッシュすぐ前に。
1つの方法は次のとおりです。
$ ./configure LDFLAGS=-L/usr/local/lib
文書にはよりエレガントな方法があるかもしれませんINSTALL
。または:
$ ./configure --help | grep -i gmp
configure
これは、使用するライブラリを制御するためのGMP固有のスクリプトオプションがあるかどうかを示します。