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
mpich
パッケージには、MPICHプログラムの実行に必要なプログラムバイナリのみが含まれています。
MPICHヘッダーと静的ライブラリ、およびMPICHプログラムの構築に必要なコンパイララッパーを含むlibmpich-dev
パッケージをインストールする必要があります。
指定したエラーメッセージに基づいて、問題はmpich
が正しくインストールされていないことではなく、問題の関数に必要なライブラリ(libmpichfort
と思われる)をリンクしていないことです。
つまり、追加する必要があります
-lmpichfort
リンクコマンドに。