我对此并不陌生,并尝试在其中可以运行的地方创建一个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”以更好地了解自动变量的工作原理,但我也无法使其正常工作。
答案 0 :(得分:0)
make命令行上的参数选择要构建的目标。您无法像使用Shell脚本一样将值传递给变量(就像您尝试使用“ NAME”一样。)
如果您确实要传递变量的值,则命令为:
NAME=testfile make -f mymakefile