autotools工具之autoconf编译生成makefile的流程

gnu autoconf学习官网:http://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/autoconf.html#Making-configure-Scripts
应用软件发布



根据Autotools的流程生成makefile及软件安装包。步骤如下
1,安装autoconf,输入安装命令:sudo apt install autoconf
2,在目录下建立一个.c源文件,如hello.c,然后输入:autoscan


生出autoscan.log,configure.scan
3,将configure.scan改成configure.ac,运行:mv configure.scan configure.ac;并修改configure.ac中第5行:AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
内容,将3个参数(第一个参数为输出文件名,第二个参数为版本号,第三个参数为出错输出地址)改为AC_INIT(hello, 1.0, [email protected])),试着注释掉第7行:#AC_CONFIG_HEADERS([config.h]),第20行输出为:MakefileAC_OUTPUT(makefile)//调用时输出makefile
再在第20行添加一个宏:AM_INIT_AUTOMAKE(hello,1.0)//行第3行保持一致
保存退出,如下:

4,运行aclocal

生成aclocal.m4 autom4te.cache/
5,运行autoconf

生成configure*
6,建立Makefile.an,命令vim Makefile.an,添加内容如下:

7,运行automake --add-missing

建立缺少的touch NEWS README AUTHORS ChangeLog
8,再运行automake --add-missing,通过。

生成了 Makefile.in
9,运行./configure

最终生成Makefile
10,运行make 命令

生成可执行文件hello
11,运行./hello

输出源文件的结果,整个过程结束。

除此之外,可以运行make install,其默认安装路径为/usr/local/bin目录下。

此时hello就安装在系统里的应用软件了,随便在一个目录下的可以运行hello。

将软件hello打包成可安装的安装软件包;
执行: make dist

生成压缩包hello-1.0.tar.gz,发布到官网供别人下载。

再返回到第3步,将注释掉的第7行:#AC_CONFIG_HEADERS([config.h])释放

然后,重复以上步骤,输入:autoconf,重新编译

再输入:automake --add-missing

此时提示缺少config.h.in文件
运行:autoheadder命令

生成config.h.in文件
再运行:automake --add-missing

运行通过。最后./configure

直接生成config.h文件
以上步骤就是autoconf的整个流程。

发布了26 篇原创文章 · 获赞 11 · 访问量 553

猜你喜欢

转载自blog.csdn.net/weixin_38251305/article/details/103900939