使用autoconf对项目自动生成makefile
来源:互联网 发布:安卓chroot运行linux 编辑:程序博客网 时间:2024/06/05 01:15
一般情况下,我会手动编写Makefile文件,但是如果搞一个开源项目,那么手动写就显得很弱了,而且兼容性不知道怎么样。就查了下如何跟开源项目一样,使用./configure make make install 的标准方式安装软件
1:首先安装autoconf, ubuntu 使用sudo apt-get install autoconf
2:进入项目目录,使用autoscan命令扫描需要目录,生成configure.scan文件
3:编辑configure.scan文件,加入以下行,参数1是生成的名字,参数2是版本
AM_INIT_AUTOMAKE(proname, 1.0)
把AC_OUTPUT改成AC_OUTPUT(Makefile),目的是说明最后生成的文件名是Makefile
4:把configure.scan重命名为configure.in
5:执行aclocal命令生成.m4文件,这是一个宏处理文件,告诉编译器如何处理你的宏
6:执行autoconf命令,生成configure可执行脚本, 他会调用Makefile.in文件生成Makefile文件,
下面是如何生成Makefile.in文件
7:创建一个Makefile.am文件,这个文件里需要写基本的信息,比如项目有哪些源代码文件,命令行参数是什么,库文件路径之类的,毕竟没那么智能,下图是am文件编写的基本格式,跟makefile差不多
例如编写如下文件保存为Makefile.am
AUTOMAKE_OPTIONS=foreign #说明严谨度,一定要写
bin_PROGRAMS=proname #名字
proname_SOURCES=main.cpp #所有源文件,默认在当前目录
proname_CPPFLAGS=-DDEBUG #编译参数
proname_LDADD= #需要链接的文件
proname_LDFLAGS=-lrt #库名字
8:执行autoheader 目的为了防止automake的时候说缺少头文件报错
9:执行automake --add-missing 让其自动寻找缺少的头文件,可能会有些警告,忽略,执行完后会生成Makefile.in文件
10:./configure 生成Makefile 再 make,会成可执行文件
- 使用autoconf对项目自动生成makefile
- 使用automake 与 autoconf 自动生成 Makefile
- 使用automake 与 autoconf 自动生成 Makefile
- Autoconf &Automake 自动生成Makefile
- autoscan autoconf自动生成 makefile
- 使用autoconf、automake自动生成Makefile实例讲解
- 【探索wireshark】 使用autoconf, automake等自动生成Makefile
- 如何使用autoconf,automake,libtool自动生成Makefile文件
- 使用Automake,Autoconf生成Makefile
- 使用Automake,Autoconf生成Makefile
- 使用Automake,Autoconf生成Makefile
- autoconf automake configure自动生成makefile
- Autoconf和Automake,自动生成Makefile
- Autoconf和Automake,自动生成Makefile
- Autoconf和Automake,自动生成Makefile
- 用 autoconf 和 automake 自动生成 Makefile
- autoconf automake 自动生成Makefile(Ubuntu10.04)
- 用autoconf和automake自动生成makefile
- ADO.NET、JDBC连接Sql Server2008简单实例
- POJ 1258 Agri-Net
- iOS 7 动画UIDynamicAnimator
- 斗地主游戏AI出牌
- unset不能return 因为返回的是void
- 使用autoconf对项目自动生成makefile
- 关于iframe子页面修改其父页面CSS样式
- 7.注解式控制器简介
- ios UIWebView加载https出现 load page error:Error Domain=NSURLErrorDomain Code=-1202 "此服务器的证书无效
- ASPxComoBox的联想输入功能
- UVa 116 - Unidirectional TSP(DP)
- java中for循环中为了去掉最后一个字符的优化
- poj——1847——Tram
- 五、奔腾的芯(INTEL)