包含mpi来制作文件

时间:2014-03-09 19:04:01

标签: makefile mpi

我正在尝试将MPI编译器包含到我的makefile中。 makefile已经准备好了,我只需要在一个单独的env文件中包含MPI编译器的地址。但是这样做不起作用。我可以通过输入以下命令手动运行cpp文件:

mpicxx Demo_00.cpp -o aprogram
./aprogram

我使用以下方法测试mpi编译器所在的位置:

which mpicxx
/usr/bin/mpicxx

在env文件中,相应的行是:

MPICXX=/usr/bin/mpicxx

但是,当我尝试“制作”他的cpp文件时,我收到以下错误:

make Demo_00
g++     Demo_00.cpp   -o Demo_00
Demo_00.cpp:2:17: fatal error: mpi.h: No such file or directory
compilation terminated.
make: *** [Demo_00] Error 1

cpp文件与env文件和makefile位于同一文件夹中。

我不太确定如何识别错误。

感谢您的帮助, 塔尔塔利亚

3 个答案:

答案 0 :(得分:1)

如果要更改C ++编译器的名称,则必须更改变量CXX。当它想要编译C ++代码时,这是默认变量make。

答案 1 :(得分:0)

日志文件中的这一行:

g++     Demo_00.cpp   -o Demo_00

说您使用的是g ++编译器而不是mpixx。

通常在makefile中,编译器定义位于文件的beginnig,如下所示:

CC=g++

将其更改为mpixx

CC=mpixx

答案 2 :(得分:0)

感谢大家的回复,我仔细研究了我认为我正在使用的makefile,事实证明,正如你已经建议的那样,我根本就没有使用它。 makefile只能执行一个具有一个特定名称的特定cpp文件。因此,每当我输入make * .cpp时,我就像你已经指出的那样使用标准make。

再次感谢您的帮助。