[✔️]AutoMake入门指南

简介: [✔️]AutoMake入门指南

AutoMake是什么


如果你知道CMake,那么就非常好理解AutoMake,无论是CMake还是还是AutoMake,他们的最终目的都是为了方便程序进行跨平台编译。


CMake的产生晚于AutoMake,在设计理念和思路上都有差异,从个人的使用体验上来说,CMake更加现代化。


AutoMake的几个核心文件的关系


image.png


  • autoreconf读取Makefile.amconfigure.ac产生Makefile.in


  • 生成的configure脚本,读取Makefile.in产生Makefile,编译可配置变量可以通过./configure --help查看


  • 执行make命令,进行程序的编译


以上就是使用AutoMake时,大概发生的一个流程逻辑,AutoMake目的就是让程序员只写一个规则:.am文件、ac文件,就能生成适合各种配置、平台的Makfiles。


一个最简单的程序:Hello Automake


我在Github上编写了一个HelloWorld,从仓库中可以看到对于一个Automake程序,有效的文件有:


  • Makefile.am


  • configure.ac


通用的编译过程为:


autoreconf --install
./configure
make


AutoMake语法


这里仅仅是记录了自己所了解到的语法,并没有深究具体的含义


关键字 解释
SUBDIRS 指定需要递归automake的子文件夹,即存在Makefile.am的子文件夹
xxx_SOURCES 程序的源代码
xxx_PROGRAMS 程序的名字


举个例子:


SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)


很明显,源码就在lib、include等,AutoMake会自动去递归检索这些目录,重新遍历Makefile.am


更多的语法就不再展开了,毕竟相对CMake来说,AutoMake已经是非常古老的轮子了,只有非常老旧的项目在使用,大部分的项目慢慢都选择了CMake。


如何跨平台编译


需要在对应的平台上执行通用的编译过程,AutoMake会根据运行环境,生成不同的Makefile。


目录
相关文章
|
人工智能 JSON 安全
AI提示词入门教程
前言 在当前的信息时代,人工智能(AI)已成为我们日常生活和工作中不可或缺的一部分。尤其是在处理语言和文本的应用中,AI的效率和能力已经展现出巨大潜力。然而,要充分利用AI的能力,有效地与之交互是关键。本文旨在探讨如何通过合适的提示词来指导AI,以确保任务的准确性和效率。我们将重点讨论基本原则和技巧,这些内容对于任何希望通过AI实现特定目标的用户都是极其有用的。
1557 0
关于如何选择正确的U-boot版本
关于如何选择正确的U-boot版本
483 0
|
Linux 索引 Perl
zynq操作系统: Linux驱动开发Bram篇
zynq操作系统: Linux驱动开发Bram篇
1691 0
|
并行计算 Linux 测试技术
GPU实例使用--单实例上运行Linux桌面多开解决方案
客户前期使用的旧异构实例面临更新换代,新的推荐异构实例性能更强,客户的业务软件运行时,GPU使用率不高,需要探索多开方案,提高GPU使用率,提高实例性价比。
|
Linux
Linux制作deb格式安装包教程
Linux制作deb格式安装包教程
1400 0
|
数据可视化 关系型数据库 编译器
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
1883 2
|
机器学习/深度学习 人工智能 Cloud Native
大语言模型推理提速,TensorRT-LLM 高性能推理实践
大型语言模型(Large language models,LLM)是基于大量数据进行预训练的超大型深度学习模型,本文主要讲述TensorRT-LLM利用量化、In-Flight Batching、Attention、Graph Rewriting提升 LLM 模型推理效率。
102709 2
|
安全 算法 网络安全
|
传感器 测试技术 芯片
在硬件连接时,如何确定 GPIO 引脚的功能和编号
在硬件连接中,确定GPIO引脚的功能和编号需查阅相关芯片或开发板的官方文档,了解引脚布局图,确认引脚的具体功能和编号,以确保正确连接和编程。
1068 3