legongju.com
我们一直在努力
2025-01-12 00:54 | 星期天

Linux Makefile中的目标如何指定

在 Linux 的 Makefile 中,目标是要生成的文件或执行的操作

  1. 显式规则:这是最常用的方法,用于指定一个或多个目标文件及其依赖关系。语法如下:
target: prerequisites
[TAB] recipe
  • target 是要生成的文件。
  • prerequisites 是生成目标所需的输入文件。
  • recipe 是生成目标所需的命令(操作)。注意,命令前面需要有一个制表符(TAB)。

例如,以下 Makefile 指定了一个名为 my_program 的目标,它依赖于 main.cutil.c 两个源文件:

my_program: main.c util.c
    gcc -o my_program main.c util.c
  1. 隐式规则:这种方法允许你使用预定义的规则,而无需显式指定目标、依赖关系和操作。隐式规则基于文件的扩展名(如 .c、.o 等)自动应用。例如,以下 Makefile 将自动应用隐式规则来编译和链接 C 程序:
CC = gcc
CFLAGS = -Wall
OBJFILES = main.o util.o

my_program: $(OBJFILES)
    $(CC) $(CFLAGS) -o my_program $(OBJFILES)
  1. 模式规则:这种方法允许你定义一组通用规则,以便根据特定模式生成目标。语法如下:
target_pattern: prerequisite_pattern
[TAB] recipe

例如,以下 Makefile 使用模式规则将所有 .c 文件编译为 .o 文件:

CC = gcc
CFLAGS = -Wall

%.o: %.c
    $(CC) $(CFLAGS) -c $< -o $@
  1. 伪目标:这些目标不代表实际的文件,而是表示一组操作。伪目标通常用于执行特定任务,如清理、安装等。要将目标声明为伪目标,需要在 Makefile 开头添加 .PHONY 声明:
.PHONY: clean

clean:
    rm -f *.o my_program

在这个例子中,clean 是一个伪目标,它删除所有 .o 文件和名为 my_program 的可执行文件。

总之,Makefile 中的目标可以通过显式规则、隐式规则、模式规则和伪目标来指定。根据项目的需求和复杂性,可以选择合适的方法来定义目标。

未经允许不得转载 » 本文链接:https://www.legongju.com/article/102944.html

相关推荐

  • linux中的top命令详解

    linux中的top命令详解

    top 是一个实时显示系统进程信息的命令行工具,它可以在 Linux 系统中实时监控系统的状态,包括 CPU、内存、交换区、进程等方面的信息 命令格式: top [选项] 主...

  • linux read系统怎么调用

    linux read系统怎么调用

    在 Linux 中,read() 是一个系统调用,用于从文件描述符(file descriptor)中读取数据
    #include ssize_t read(int fd, void *buf, size_t count); 参数说明...

  • linux如何查询当前系统时间

    linux如何查询当前系统时间

    在Linux中,您可以使用date命令来查询当前系统时间
    date 这将显示当前的日期和时间,例如:
    2021年 10月 15日 星期五 16:30:45 CST 如果您想以特定格式...

  • linux如何查看本机系统

    linux如何查看本机系统

    在Linux中,有多种方法可以查看本机的系统信息 使用uname命令: uname -a 这将显示内核版本、操作系统类型、硬件架构等信息。 使用/etc/os-release文件: cat /e...

  • Linux Makefile中的宏定义如何使用

    Linux Makefile中的宏定义如何使用

    在 Linux 的 Makefile 中,宏定义是一种非常有用的功能,它们可以让你在整个 Makefile 中重复使用特定的值或表达式 定义宏: 在 Makefile 中,可以使用等号(=)...

  • Linux Makefile中的规则如何编写

    Linux Makefile中的规则如何编写

    在Linux Makefile中,规则是用于指定如何生成目标文件(target)的一组命令 目标(Target):规则的目标是要生成的文件。通常,这是一个可执行文件、库文件或者其...

  • 如何编写高效的Linux Makefile

    如何编写高效的Linux Makefile

    编写高效的 Linux Makefile 需要遵循一些最佳实践 使用隐式规则:Make 有许多内置的隐式规则,可以自动应用于常见的文件类型。例如,编译 C 源代码时,只需指定目...

  • Linux下Makefile的基本语法是什么

    Linux下Makefile的基本语法是什么

    Linux下的Makefile是一个用于自动化编译和链接C/C++等程序的工具 规则(Rule):Makefile中的规则定义了如何生成一个或多个目标文件。每个规则包含三个部分:目标...