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 中使用伪目标来提供额外的功能或命令,从而使构建系统更加灵活和易用。在实际项目中,可以根据需要定义各种不同的伪目标,以满足项目的特定需求。

相关文章
【yolo训练数据集】标注好的垃圾分类数据集共享
【yolo训练数据集】标注好的垃圾分类数据集共享
4561 258
【yolo训练数据集】标注好的垃圾分类数据集共享
|
存储 算法 前端开发
Java——使用Map还是实体类?
Java——使用Map还是实体类?
|
Linux Shell
linux 下安装minio并配置
现在我们去服务器,我们启动时指定的目录去看看,文件桶相当于文件目录,这里没有使用纠删码的模式,所以直接就是源文件了。当我们线上运行的项目已经有源文件了,在使用minio的时候,可以直接指定该目录为minio的文件目录就行了。
|
前端开发 Java 文件存储
JAVA 文件上传 和 下载
文件上传,也称为upload,是指将本地图片、视频、音频等文件上传到服务器上,可以供其他用户浏览或下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能。
|
SQL Java 数据库连接
SpringBoot2.x系列教程31--SpringBoot整合H2内存数据库实现CRUD操作
前言 在上一章节中,我给大家详细讲解了H2数据库的安装配置,接下来我就带大家在Spring Boot中整合H2数据库,实现代码操作。 一. 以内嵌模式整合H2数据库 1. 创建Web项目 我们按照之前的经验,创建一个SpringBoot的Web程序,具体过程略,请参考下图创建。 2. 添加依赖包 然后在pom.xml文件中添加如下依赖包。 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <de
1891 1
SpringBoot2.x系列教程31--SpringBoot整合H2内存数据库实现CRUD操作
|
安全 程序员 编译器
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
5334 0
Python有多少个版本?不同Python版本之间有什么区别?我应该选择哪一个?
|
SQL 关系型数据库 MySQL
做MySQL 的并发控制
本文以 MySQL 8.0.35 的代码为例,尝试对 MySQL 中的并发访问控制进行一个整体的介绍。
|
7月前
|
网络协议 应用服务中间件 网络安全
免费IP SSL证书申请指南
申请免费IP SSL证书较域名SSL证书更为复杂,但仍有CA机构提供服务。流程包括:确认公网IP及管理权限,选择支持IP的免费CA机构注册账号,选择IP地址证书类型并提交申请,通过文件或DNS验证所有权,等待审核后下载签发的证书,按服务器类型安装配置,并定期更新证书确保安全。
|
11月前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
273 33
|
12月前
|
安全 前端开发 测试技术
【灵码助力安全2】——利用通义灵码辅助复现未公开漏洞的实践
本文介绍了利用通义灵码辅助复现未公开漏洞的过程,包括XSS和文件包含两种典型漏洞类型。通过具体案例,展示了如何结合CVE描述和源码,使用灵码定位漏洞位置、分析漏洞原因,并验证漏洞的存在。文章强调了灵码在提高漏洞复现效率、减少手动排查时间方面的优势,同时也指出了其在复杂场景下仍需人工判断的局限性。未来,期待灵码能在自动化安全测试、动态分析及威胁建模等领域发挥更大作用,全面提升软件安全性。