Makefile伪目标

简介: Makefile伪目标

Makefile伪目标

伪目标在 Makefile 中是指不生成对应的文件,只是提供一些额外的功能或命令。它们通常用于执行一些常用操作,如清理、测试、安装等。以下是几个常见的伪目标示例及其说明:

1. clean 示例:

clean:

   rm -f *.o my_program

 

这个例子定义了一个名为clean的伪目标,用于删除所有的目标文件(.o 文件)和可执行文件(my_program)。通常在项目中,编译生成的文件会比较杂乱,因此定义一个clean目标用于清理这些文件是很常见的。

2. test 示例:

test: my_program

   ./my_program --test

 

这个例子定义了一个名为test的伪目标,用于运行程序的测试。在这个例子中,假设my_program是一个可执行文件,运行时可以通过--test选项执行测试。通过定义test目标,可以更方便地运行程序的测试。

3. install 示例:

install: my_program

   cp my_program /usr/local/bin

 

这个例子定义了一个名为install的伪目标,用于安装程序。在这个例子中,假设my_program是一个可执行文件,通过定义install目标,可以将该程序复制到/usr/local/bin目录下,使其变为可执行文件。

4. distclean 示例:

distclean: clean

   rm -f config.h my_program

 

这个例子定义了一个名为distclean的伪目标,用于彻底清理项目。在这个例子中,distclean目标首先调用clean目标清理目录,然后删除其他生成的文件,如配置文件(config.h)。通过定义distclean目标,可以更彻底地清理项目,以便重新构建。

5. help 示例:

help:
    @echo "Usage: make [target]"
    @echo ""
    @echo "Targets:"
    @echo "  clean       Clean up generated files"
    @echo "  test        Run program tests"
    @echo "  install     Install the program"
    @echo "  distclean   Clean up all generated files and configuration"

 

这个例子定义了一个名为help的伪目标,用于显示 Makefile 的帮助信息。在这个例子中,help目标输出了各个目标的说明,以及如何使用make命令。通过定义help目标,可以方便用户查看可用的目标和其说明。

这些示例展示了如何在 Makefile 中使用伪目标来提供额外的功能或命令,从而使构建系统更加灵活和易用。在实际项目中,可以根据需要定义各种不同的伪目标,以满足项目的特定需求。

相关文章
|
6月前
|
存储 编译器 C++
Makefile
Makefile
34 0
|
6月前
|
IDE Shell Linux
013.Makefile
Makefiel 编写 我们之前其实已经写过一些makefile了,只是没有具体介绍,本篇博客就详细的介绍一下Makefile。
56 0
|
Shell Linux Go
一日一技:5分钟掌握 Makefile
一日一技:5分钟掌握 Makefile
166 0
1.10~1.12 Makefile
1.10~1.12 Makefile
83 0
1.10~1.12 Makefile
|
Java C语言
Makefile2
规范 target可以是Object file, 可执行文件或者标签(标签一般没有依赖) 越靠近最终结果的target卸载越前面 定义target前, 定义CC, SRC, CFLAGS, OBJS, INCLUDES, RM, COPY等变量方便修改 在以前使用gcc编译时, 一般直接使用gcc编程链接成可执行文件, 但是在makefile中.
989 0
|
C语言
makefile中伪目标的理解
1. 我们知道Makefile中的语法是这样: target ... : prerequisites ... command … …   2. 假如编译两个文件可以这么写: a.o:a.c  gcc -c a.c b.o:b.c  gcc -c b.c Test: a.o b.o   gcc -o Test a.o b.oclean:  rm *.o 我们可以单独这么运行:make a.o或者make b.o或者make clean注意上面三个的区别。
1224 0