在makefile中指定文件名

时间:2018-08-02 22:41:25

标签: linux gnu-make makefile-errors

我对此并不陌生,并尝试在其中可以运行的地方创建一个makefile,

public class Blackjack
{
    public static void main(String args[])
{
            char[] deck = new char[]{'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K','A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K','A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K'};
            char[] deck2 = new char[52];

            int i = 0;

            while (hasRemaining(deck))
            {

                Random rand = new Random();
                int r = rand.nextInt(52);
                if (deck[r] != '-1')
                {
                    deck2[i] = deck[r];
                    deck[r] = -1;
                    i++;
                }
            }

            System.out.println(deck2);

        }


        public boolean hasRemaining(char[] c)
        {
            for (int i = 0; i < c.length; i++)
            {
                if (c[i] != '-1')
                    return true;
            }

            return false;
        }

  }

,makefile将找到testfile.java(存在于我正在运行的目录中),将其编译并运行代码。

相反,我必须对自动变量的工作方式感到困惑,并且在整个下午工作后,我仍然收到错误消息:

make -f mymakefile testfile

任何帮助将不胜感激,我的代码如下:

make: Nothing to be done for `testfile'.

我尝试过使其回显“ testfile”以更好地了解自动变量的工作原理,但我也无法使其正常工作。

1 个答案:

答案 0 :(得分:0)

make命令行上的参数选择要构建的目标。您无法像使用Shell脚本一样将值传递给变量(就像您尝试使用“ NAME”一样。)

如果您确实要传递变量的值,则命令为:

NAME=testfile make -f mymakefile