如何为接受命令行参数的程序创建Makefile

时间:2013-09-21 08:51:51

标签: c unix makefile terminal cmd

我需要为程序创建一个Makefile,它通过命令行接收文件作为输入。

这就是我的意思:

程序的主要功能如下:

int main(long argc, char **argv) //'argument command' and 'argument vector'respectively
{
  some code;
}

您编译此C语言源代码文件

gcc main.c function1.c function2.c -o execute

这会创建一个名为'execute'的可执行程序。然后你将参数传递给这个程序:

./execute filename

我创建的makefile包含以下内容:

all: xsd

xsd: main.o function1.o function2.o
    gcc -o xsd main. function1.o function2.o

main.o: main.c
    gcc -c -o main.o main.c

function1.o: function1.c
    gcc -c -o function1.c

function2.o: function2.c
    gcc -c -o function2.c

clean:
    rm -rf *o xsd

那么如何创建一个适当的makefile来容纳通过命令行传入的输入文件?也许是这样的:

./{argv}

有人知道怎么做吗?

2 个答案:

答案 0 :(得分:1)

make文件不运行程序,它只编译它,所以它也不必传递任何参数。

答案 1 :(得分:1)

只修复类型-o,并使所有依赖于xsd而不是prog ...

all: xsd

xsd: main.o function1.o function2.o
    gcc -o xsd main.o function1.o function2.o

main.o: main.c
    gcc -c -o main.o main.c

function1.o: function1.c
    gcc -c -o function1.c

function2.o: function2.c
    gcc -c -o function2.c

clean:
    rm -rf *o xsd