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

标签 c unix makefile terminal cmd

我需要为一个程序创建一个 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”的可执行程序。然后你将一个参数传递到这个程序中:

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

有人知道怎么做吗?

最佳答案

只需修复 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

关于c - 如何为接受命令行参数的程序创建 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18930742/

相关文章:

java - 如何在Java中将文件存储在磁盘上并保证它们被删除

makefile - 制作文件预处理器指令

c++ - 为 Unix 创建一个 makefile

c - 为什么我的函数没有运行并出现无效内存错误?

c - 使用 blob 文件初始化 C 数组

c - 在C中解析原始内存中的ASCII

正则表达式查找带引号、分号和等于的值

c - 通过查找表了解位设置计数的位旋转技巧

linux - 使用 shell 脚本检查文件是否为 jpeg 格式

c - Makefile 可执行文件错误