Функция параметра make-файла команды оболочки - PullRequest
0 голосов
/ 08 июля 2019

Обычно я запускаю свой код с make-файлом следующим образом:

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 ();
  }

Я не знаю, как запустить этот код, присвоив числовые значения моим переменным Ra и Pr непосредственно в оболочке.

Например:

CC = 'mpicc -D_MPI = 4' make cav2d2phase.tst 2 Ra = 1e6

Мой GitHub с make-файлами

1 Ответ

1 голос
/ 08 июля 2019

Неясно, как код C вызывается из вашего Makefile, но вы можете передавать переменные командной строки Make в вашу программу.

Предположим, что ваше приложение вызывается из Makefile следующим образом

cav2d2phase.tst: …
    ./your-program <$< >$@

Просто измените его на

cav2d2phase.tst: …
    ./your-program ${Ra} ${Pr} <$< >$@

и вызовите вашу цель создания:

CC='mpicc -D_MPI = 4' make cav2d2phase.tst 2 Ra=1e6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...