5

VS08 以外で主要なプログラミングを行ったことはありません。

関連する 2 つの make ファイルのいずれかを使用して、LAMMPS というプログラムをコンパイルしようとしています。1 つは g++ を呼び出し、もう 1 つは icc (Intel のコンパイラ) を呼び出します。

icc は次のエラーを生成します。

icc -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M write_restart.cpp > write_restart.d write_restart.cpp(15): 致命的なエラー: ソース ファイル "mpi.h" を開けません #include "mpi.h"

そしてg ++はこのエラーをスローします

g++ -g -O -DLAMMPS_GZIP -DMPICH_SKIP_MPICXX -DFFT_FFTW -M verlet.cpp > verlet.d pointers.h:25: 致命的なエラー: mpi.h: そのようなファイルまたはディレクトリのコンパイルは終了しませんでした。

mpi.h ファイルは /usr/lib/openmpi/include にあります。

読み取る $PATH 変数を設定する必要があることは私の理解です

bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/opt/intel/bin:/usr/lib /openmpi/インクルード:

および現在読み取り中の $LD_LIBRARY_PATH

/usr/lib/openmpi/lib:

SO、mpi.h ファイルをどのようにインクルードしますか? iccまたはg ++のいずれかがそれを見つけるように?

4

3 に答える 3

5

mpi.h は MPI ライブラリのヘッダーです。これは、makefile で g++ の代わりに mpic++ MPI コンパイラ ラッパーを使用する場合に含まれます。mpic++ は適切なコンパイラを呼び出します。あなたの説明から、ubuntuマシンにopenmpiパッケージがインストールされています。

詳細については、マニュアルを参照する必要があります。

http://lammps.sandia.gov/doc/Section_start.html#2_2 (LAMMPS用)

また、追加のコンパイラをセットアップする方法については、openmpi のマニュアルを参照する必要があるかもしれません。openmpi 自体がビルドされた後にこれを実行できるかどうかは不明です。デフォルトでは、Ubuntu openmpi コンパイラ ラッパーは g++ のみを呼び出すと思います。CMIIW。

于 2011-04-23T04:28:37.237 に答える
2

さて、「mpic++」ではなく「mpic++.mpich2」としてccを設定すると、g++で動作するようになりました

于 2012-11-10T19:52:51.153 に答える
0

/src/MAKE make openmpi の openmpi make file を使用してコンパイルを試すことができます

私の場合、このオプションは成功しました

于 2012-07-24T14:48:32.173 に答える