命令行参数进入make文件

时间:2012-08-18 00:03:06

标签: c makefile command-line-arguments

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

$ make --argument1 

或类似的东西。

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

我一直试图寻找这样做的方法。实际上是否有这样做的方法?

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

  

命令行中定义的变量将传递给sub-make   通过MAKEFLAGS。含有'='的MAKEFLAGS值的单词,   将对待视为变量定义就像它们出现在   命令行。

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

请告诉我。

2 个答案:

答案 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中的某个位置,您将找到用于调用您的程序的操作行。如果您能找到该行,则可以添加所需的参数。