-1

我需要为通过命令行将文件作为输入的程序创建一个 Makefile。

这就是我的意思:

一个程序的 main 函数如下所示:

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 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}

有人知道怎么做吗?

4

2 回答 2

1

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

于 2013-09-21T08:59:47.897 回答
1

只需修复type-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
于 2013-09-21T09:00:37.180 回答