我正在尝试将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位于同一文件夹中。
我不太确定如何识别错误。
感谢您的帮助, 塔尔塔利亚
答案 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。
再次感谢您的帮助。