autoconf & automake

本文介绍了使用Autoconf和Automake构建Linux环境下软件项目的详细步骤。通过创建一个简单的Hello World程序,演示了从源码扫描到配置脚本生成,再到Makefile的自动化构建过程。
真正从事了linux distribution 的开发工作之后,发现autoconf & automake 是必须掌握的工具了。之前做手机的时候,曾经接触过,当时很是好奇,后来在天津图书馆还看到一本书的一章讲过autoconf & automake。

不过,却是现在才对autoconf & automake 有了深入的理解。

转载几篇参考博客:

http://www.ibm.com/developerworks/cn/linux/l-makefile/

http://blog.youkuaiyun.com/kasagawa/article/details/6885998

http://www.cnblogs.com/itech/archive/2010/11/28/1890220.html

http://linux.chinaunix.net/techdoc/system/2009/02/05/1060775.shtml


练习实例:

$cd ~

$mkdir helloworld

$cd helloworld

$vim helloworld.c

#include <stdio.h> 
#include <stdlib.h> 
 
int main(int argc,char* argv[]) 
{ 
        printf("Hello World!\n"); 
        return 0;        
} 


$autoscan

生成如下文件:

autoscan.log  configure.scan  helloworld.c

$mv -v configure.scan configure.in

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.67])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([helloworld.c])
AC_CONFIG_HEADERS([config.h])

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.
AC_CHECK_HEADERS([stdlib.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT

将configure.scan 重命名为configure.in, 并将其内容修改如下:

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.67])
AC_INIT(helloworld, 1.0, qc@gmail.com)
AC_CONFIG_SRCDIR([helloworld.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(helloworld, 1.0)

# Checks for programs.
AC_PROG_CC

# Checks for libraries.

# Checks for header files.
AC_CHECK_HEADERS([stdlib.h])

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

AC_OUTPUT(Makefile)

$aclocal

生成aclocal.m4 文件

$autoconf

生成 configure文件。

$autoheader

生成config.h.in 文件

$ vim Makefile.am

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
hello_SOURCES=helloworld.c

$ automake --add-missing

$ ./configure

$ make

至此为止就完成了helloworld.c 的Makefile 生成,到最终的make 编译。

当然可以继续make install 将helloworld 程序安装到/usr/local/bin 目录下面。

make dist 将程序打包成压缩包。


源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
内容概要:本文围绕《CentOS服务器环境搭建实战项目在毕业设计方面的应用&mdash;&mdash;从零部署到高可用Web服务》,系统讲解了如何基于CentOS Stream 9搭建可复现、可答辩、可扩展的服务端原型,涵盖基础设施即代码(IaC)、安全配置(SELinux/Firewalld)、高性能Web架构(Nginx + uWSGI + Flask)、HTTPS加密(Let&rsquo;s Encrypt)及监控体系(Prometheus + Grafana)等核心技术。通过Ansible自动化部署、Flask应用开发与Nginx反向代理配置,结合真实代码案例,帮助学生在4~6周内完成具备真实实验数据支撑的毕业设计。; 适合人群:计算机、软件工程、大数据、人工智能等专业的应届本科或研究生毕业生,具备Linux基础和基本编程能力者优先。; 使用场景及目标:①用于构建高并发博客、深度学习推理平台或边缘计算网关等毕业设计课题;②实现在论文中展示自动化部署、性能优化、安全加固和监控可视化等关键技术环节,提升答辩说服力与学术可信度;③支持HTTPS、缓存加速、服务监控等功能集成,满足&ldquo;可复现、可扩展&rdquo;的科研要求。; 阅读建议:建议结合文中提供的目录结构、Ansible脚本、Flask应用代码和Nginx模板进行动手实践,重点关注IaC思想与实验数据采集方法,并将关键配置截图和性能图表直接嵌入论文,增强论证真实性与技术深度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值