Как записать цикл в Make-файле?

Нас 0 prcision и добавляют период, если Вы хотите тот. EG "%.0f".

>>> print "%.0f."%1.0
1.
>>> 
201
задан Willem Van Onsem 10 June 2016 в 04:07
поделиться

2 ответа

Следующее будет делать это, если, как я предполагаю, используя ./ a.out , вы работаете на платформе типа UNIX.

for number in 1 2 3 4 ; do \
    ./a.out $$number ; \
done

Тест следующим образом:

target:
    for number in 1 2 3 4 ; do \
        echo $$number ; \
    done

производит:

1
2
3
4

Для больших диапазонов используйте:

target:
    number=1 ; while [[ $$number -le 10 ]] ; do \
        echo $$number ; \
        ((number = number + 1)) ; \
    done

Это выводит с 1 по 10 включительно, просто измените условие завершения , а с 10 на 1000 для гораздо большего диапазона, как указано в вашем комментарии.

Вложенные циклы могут быть выполнены таким образом:

target:
    num1=1 ; while [[ $$num1 -le 4 ]] ; do \
        num2=1 ; while [[ $$num2 -le 3 ]] ; do \
            echo $$num1 $$num2 ; \
            ((num2 = num2 + 1)) ; \
        done ; \
        ((num1 = num1 + 1)) ; \
    done

производят:

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
4 1
4 2
4 3
252
ответ дан 23 November 2019 в 05:02
поделиться

Если вы используете GNU make, вы можете попробовать

NUMBERS = 1 2 3 4
doit:
        $(foreach var,$(NUMBERS),./a.out $(var);)

, который сгенерирует и выполнит

./a.out 1; ./a.out 2; ./a.out 3; ./a.out 4;
254
ответ дан 23 November 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: