我需要为程序创建一个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}
有人知道怎么做吗?
答案 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