linux下使用autotools创建makefile文件
来源:互联网 发布:mac手写输入法怎么取消 编辑:程序博客网 时间:2024/06/07 06:22
Autotools使用流程
Autotools是系列工具,首先确认系统是否装了以下工具(可以使用which命令来查看)
aclocal autoscan autoconf autoheader automake
1、autoscan 它会搜索源文件以寻找一般的移植性问题并创建一个文件“configure.scan”,该文件就是接下来autoconf要用到的“configure.in”原型。
接下来将“configure.scan”重命名为“configure.in”
2、configure.in是autoconf的脚本配置文件,打开此脚本文件
做如下修改:
AC_PREREQ宏声明文本要求的autocong版本,比如此版本是2.66
AC_INIT宏用来定义软件的名称和版本
AM_CONFIG_AUTOMAKE它是automake所必备的宏,使用automake自动生成makefile.in
AC_CONFIG_SRSDIR宏用来检查制定的源码是否存在
AC_CONFIG_HEADER宏用来生成config.h文件,以便autoheader使用
AC_CONFIG_FILES宏用于生成相应的makefile文件
接下来首先运行aclocal生成一个aclocal.m4文件,该文件主要处理本地的宏定义,再接着运行autoconf用于生产configure可执行文件
3、autoheader 接着使用autoheader命令,它负责生成config.h.in文件
4、automake 这一步是创建makefile很重要的一步,automake要使用的脚本文件是makefile.am用户需要自己创建相应的文件,之后automake工具转化成makefile.in
AUTOMAKE_OPTIONS为设置automake的选项。GUN对自己发布的软件有严格的规范,antomakr提供了3中软件等级:foreign,gnu和gnits,让用户自己选择,默认等级为gnu,本例采用foreign等级,它只检测必须的文件
bin_PROGRAMS定义产生的可执行文件名,如果要产生多个执行文件,每个执行文件名用空格隔开
hello_SOURCES定义hello这个执行文件所需要的原始文件,如果hello是由多个文件产生的,必须把所有原始文件都列出来,并用空格隔开。例如hello需要hello.c hello.h 2个文件依赖则定义为hello_SOURCES=hello.c hello.h 。如果要定义多个执行文件,则每个执行程序都需要定义相应的file_SOURCES
接下来可以使用automake命令来生成configure.in文件,在这里使用选项-a可以让antomake自动添加一些必须的脚本文件
5、运行configure 在这一步中,通过自动配置设置文件configure,把makefile.in变成了最终的makefile
6、使用autotools生成的makefile
make install 此时会把程序安装到系统目录中去,直接运行hello就可以出现结果
make clean 会清楚之前编译的可执行文件以及目标文件
make dist会将程序和相关文档打包为一个压缩文件
至此使用autotools工具制作makefiles文件完成。
- linux下使用autotools创建makefile文件
- 在linux下利用autotools创建makefile文件
- Linux下使用Autotools生成Makefile
- 学习笔记linux autotools创建makefile文件(续)
- linux下编程用到的autotools工具 生成makefile文件
- 在Ubuntu下使用autotools生成Makefile
- 在Ubuntu下使用autotools生成Makefile
- Ubuntu16.04下使用autotools生成Makefile
- 使用autotools工具自动生成makefile文件
- 使用autotools制作Makefile和configure文件
- Makefile文件编写和autotools的使用
- Linux下autotools的使用
- 使用Autotools生成Makefile
- 使用autotools生成makefile
- 使用autotools建立Makefile
- 使用autotools建立Makefile
- 使用autotools产生makefile
- 使用autotools生成Makefile
- Linux设备模型之tty驱动架构分析
- 欢迎使用CSDN-markdown编辑器
- ifconfig命令
- gdb学习小结
- 关于客户端缓存网页
- linux下使用autotools创建makefile文件
- Linux下memcache的安装和启动(很好)
- cocos2dx 基础知识体系
- write my os
- Guava ---- FluentIterable迭代器
- Android 学习笔记技巧之给文本加边框
- memcached 缓存 分布式缓存 常见命令,管理命令
- Java分享1:Java发展简史
- 帝陵最完全的介绍