通常我用makefile运行代码:
CC = 'mpicc -D_MPI = 4' make cav2d2phase.tst
我在4个处理器上并行运行我的代码。
现在,我的主函数包含以下参数:
int main (int argc, char * argv []) {
if (argc> 1)
Ra = atof (argv [1]);
if (argc> 2)
Pr = atof (argv [2]);
size (npe ());
origin (-0.5, -0.5);
dimensions (ny = 1);
DT = 0.1;
TOLERANCE = 1e-6;
N = 1 << MINLEVEL;
// Ra = 1e5; Pr = 1 .;
B = 1.2;
run ();
}
我不知道如何通过直接在shell中将数值赋给变量Ra和Pr来启动这段代码。
例如:
CC = 'mpicc -D_MPI = 4' make cav2d2phase.tst 2 Ra = 1e6
My github with the makefiles
最佳答案
目前还不清楚如何从Makefile内部调用C代码,但可以将Make命令行变量传递给程序。
假设您的应用程序在Makefile中被调用,如下所示
cav2d2phase.tst: …
./your-program <$< >$@
把它改成
cav2d2phase.tst: …
./your-program ${Ra} ${Pr} <$< >$@
并调用make目标:
CC='mpicc -D_MPI = 4' make cav2d2phase.tst 2 Ra=1e6
关于c - Shell命令的makefile参数功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56936951/