web-dev-qa-db-ja.com

mpichが正しくインストールされない理由

16.04にいます。私が

Sudo apt-get install mpich

そして、libディレクトリを確認します

/ usr/lib/mpich

予想どおりincludeディレクトリが含まれていますが、その中のlibディレクトリ:

/ usr/lib/mpich/lib

以下へのシンボリックリンクです。

/ usr/lib/x86_64-linux-gnu

私が知る限り、libファイルはなく、mpichライブラリが見つからないため、コードをコンパイルできません。

/ usr/lib/mpich $ readlink -f lib

返却値:

/ usr/lib/x86_64-linux-gnu

コンパイルおよびリンクコマンドは次のとおりです。

ifort -warn none -O2 -I/usr/include/mpich/-c boundary.F90 -o boundary.o

ifort -o boundary.o -lmpi

エラーは次のとおりです。

boundary.F90 :(。text + 0xaa): `mpi_sendrecv_ 'への未定義の参照

そして、リンクディレクトリは

/ usr/include/mpich/lib

1
kotozna

mpichパッケージには、MPICHプログラムの実行に必要なプログラムバイナリのみが含まれています。

MPICHヘッダーと静的ライブラリ、およびMPICHプログラムの構築に必要なコンパイララッパーを含むlibmpich-devパッケージをインストールする必要があります。


指定したエラーメッセージに基づいて、問題はmpichが正しくインストールされていないことではなく、問題の関数に必要なライブラリ(libmpichfortと思われる)をリンクしていないことです。

つまり、追加する必要があります

-lmpichfort 

リンクコマンドに。

3
steeldriver