1935129 2025-02-23 21:58 采纳率: 16.7%
浏览 5
已结题

创建makefile

img


makefile里怎么写才能make+名字进行指定编译
比如 make pthrd_shared
就执行 gcc pthrd_shared.c -o pthrd_shared -Wall -g -lpthread
make t.c就执行
gcc t.c -o t -Wall -g -lpthread

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-02-23 21:59
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    创建 Makefile

    要在 Makefile 中实现指定编译目标的功能,可以使用 $(MAKECMDGOALS) 变量,它将包含用户在命令行中指定的目标名称。

    下面是一个简单的示例 Makefile:

    CC=gcc
    CFLAGS=-Wall -g -lpth
    
    all: $(MAKECMDGOALS)
    
    $(MAKECMDGOALS): %.c
        $(CC) $< -o $@ $(CFLAGS)
    

    在上面的 Makefile 中,我们使用 $(MAKECMDGOALS) 作为目标名称,%.c 是一个通配符,匹配所有以 .c 结尾的文件。然后,我们使用 $(CC) 编译器和 $(CFLAGS) 编译选项来编译目标文件。

    现在,你可以使用 make 命令指定编译目标名称,例如:

    make pthrd_shared
    

    Makefile 将自动编译 pthrd_shared.c 文件并生成 pthrd_shared 可执行文件。

    Makefile 详解

    • CC=gcc:指定编译器为 gcc
    • CFLAGS=-Wall -g -lpth:指定编译选项为 -Wall-g-lpth
    • all: $(MAKECMDGOALS):指定目标名称为用户在命令行中指定的目标名称。
    • $(MAKECMDGOALS): %.c:匹配所有以 .c 结尾的文件,并将其作为目标文件。
    • $(CC) $< -o $@ $(CFLAGS):使用 $(CC) 编译器编译目标文件,使用 $(CFLAGS) 编译选项。

    Makefile 优点

    使用 Makefile 可以实现自动编译、编译优化和依赖关系管理等功能。Makefile 可以帮助你更好地管理项目的编译过程,提高编译效率和可维护性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月24日
  • 创建了问题 2月23日