首页 > 解决方案 > Makefile 不会将我的输出“堆叠”在 .txt 文件中

问题描述

因此,我正在尝试创建一个 makefile,它为我的每个参数(即 6 个)运行我的程序 5 次,并且对于这 6 个参数中的每一个,makefile 都会创建一个新的 .txt(我的输出)。但由于某种原因,我的所有输出都只显示一个结果。

for t in 2 4 8 16 32 64 ; do \
        #n=1 ; while [ $${n} -le 5 ] ; do \
        for n in 'seq 1 5' ; do \
            OMP_NUM_THREADS=$$t ./cowichan_openmp norm >> normOut$$t.txt ; \
        done ; \
    done ;

标签: ubuntumakefile

解决方案


将评论要点转化为答案。

从表面上看,for n in 'seq 1 5' ; do单引号意味着循环执行一次并且n具有值“ seq 1 5”。您需要反引号`…`$$(…)(双美元绕过make扩展宏;shell 看到$(…))。甚至只是:

for n in 1 2 3 4 5; do \

错字在哪里 - 在问题或您从中复制的生成文件中?

如果添加一行:

echo $$t $$n; \

在 OpenMP 行之前(或之后)(从问题复制的配方),你会明白我的意思。


推荐阅读