0

我有一个 C 文件,我想为其提供 cmd 行参数。

$ make --argument1 

或类似的东西。

因此,在我的主程序中,我应该能够执行 argv[1] 并能够访问该变量。

我试图寻找这样做的方法。实际上有没有办法做到这一点?

这些是我在 GNULinux 手册上找到的关于 make 的相关内容。

命令行定义的变量通过MAKEFLAGS传递给子make。MAKEFLAGS 值中包含 '=' 的单词,make 将其视为变量定义,就像它们出现在命令行上一样。

这是我需要阅读更多内容还是在不同的背景下?

请让我知道。

4

2 回答 2

0

我认为您误解了命令行参数的使用-它们是在执行可执行文件时而不是在编译时给出的。

更好的例子

foo.c

#include <stdio.h>

int main()
{
   int myval=DEFVAL;

   printf("myval=%d\n", myval);
   return 0;
}

生成文件

DEFVAL=17

foo: foo.c
   gcc -DDEFVAL=${DEFVAL} foo.c -o $@
于 2012-08-18T00:06:07.267 回答
0

你的问题没有多大意义,所以我要在字里行间阅读,猜测你有一个别人写的 Makefile,当你运行 make 时,它​​运行一些程序,这就是程序你想给出命令行参数。

为此,您可能必须修改 Makefile。为此,它有助于理解 make 如何工作以及如何使用它(您可能想找到一本关于该主题的书,例如这本),但修改 Makefile 可能不会太麻烦。

在 Makefile 的某个地方,您会找到用于调用您的程序的操作行。如果你能找到那行,你可以添加你想要的参数。

于 2012-08-18T06:15:12.723 回答