我有一个C文件,我想为其提供cmd行参数。
说
$ make --argument1
或类似的东西。
因此,在我的主程序中,我应该能够执行argv [1]并能够访问变量。
我一直试图寻找这样做的方法。实际上是否有这样做的方法?
这些是我在GNULinux手册中找到的关于make的相关内容。
命令行中定义的变量将传递给sub-make 通过MAKEFLAGS。含有'='的MAKEFLAGS值的单词, 将对待视为变量定义就像它们出现在 命令行。
这是我需要阅读的更多内容还是在不同的背景下?
请告诉我。
答案 0 :(得分: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 $@
答案 1 :(得分:0)
你的问题没有多大意义,所以我会在各行之间阅读并猜测你有一个别人写的Makefile,当你运行make时,它会运行一些程序,那就是您想要提供命令行参数的程序。
为了做到这一点,你可能需要修改Makefile。为此,有助于理解make如何工作以及如何使用它(您可能希望找到关于该主题的书籍,例如this one),但是可以毫不费力地修改Makefile。
在Makefile中的某个位置,您将找到用于调用您的程序的操作行。如果您能找到该行,则可以添加所需的参数。