ubuntu 下AutoMake相关流程介绍
来源:互联网 发布:固高科技 知乎 编辑:程序博客网 时间:2024/04/29 15:12
公司的项目既使用手写的makefile,也使用automake,没有统一的规定,一直是把别人的makefile文件拿过来,改改再用。最近有空,仔细了解了一下makefile和automake,发现makefile写起来麻烦,automake简单多了,于是将automake的用法整理了一下,作为以后的参考
整个过程的步骤如下:
1. 在存放源代码的目录下执行autoscan命令生成configure.scan文件。
2. 将configure.scan文件改名为configure.in或者configure.ac,并对其默认配置进行修改,修改如下:
Configure.in文件:
- # Process this file with Autoconf to produce a configure script.
- AC_INIT(Main.cpp) #指定main函数所在的文件
- AM_INIT_AUTOMAKE(hello, 1.0) #指定程序名称和版本
- # Checks for programs.
- #检查可用的编译器
- AC_PROG_CC #C语言编译器
- AC_PROG_CPP #C++编译器
- AC_PROG_CXX
- # Checks for libraries.
- # Checks for header files.
- # Checks for typedefs, structures, and compiler characteristics.
- # Checks for library functions.
- AC_OUTPUT(Makefile)
3. 执行aclocal、autoconf两个命令,分别生成aclocal.m4、configure文件。
4. 创建一个名为Makefile.am的文件,并输入相应的内容。
Makefile.am文件:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=helloworld.c
5. 执行automake --add-missing,它根据Makefile.am文件,生成Makefile.in。
6. 执行./configure脚本文件,它根据Makefile.in文件,生成最终的Makefile文件。
通过以上步骤,在源代码所在目录下自动生成了Makefile文件。
如下图所示
如果觉得上面的步骤太多,也可以使用autoreconf工具,它会按照顺序调用上面的工具,步骤如下
1. 在存放源代码的目录下执行autoscan命令生成configure.scan文件。
2. 将configure.scan文件改名为configure.in,并对其默认配置进行修改。
3. 创建一个名为Makefile.am的文件,并输入相应的内容。
4. 执行autoreconf --install,它根据Makefile.am,configure.in文件,生成Makefile.in,configure,config.h.in。
5. 执行./configure脚本文件,它根据Makefile.in文件,生成最终的Makefile文件。
如下图所示
上面介绍了生成Makefile的整个流程,其中包括两个关键的文件,configure.in和Makefile.am,这两个文件都需要人工编写,下面给出一个简单的示例,详细的解释目前写不出来,等有一定的经验之后再写
Configure.in文件:
- # Process this file with Autoconf to produce a configure script.
- AC_INIT(Main.cpp) #指定main函数所在的文件
- AM_INIT_AUTOMAKE(hello, 1.0) #指定程序名称和版本
- # Checks for programs.
- #检查可用的编译器
- AC_PROG_CC #C语言编译器
- AC_PROG_CPP #C++编译器
- AC_PROG_CXX
- # Checks for libraries.
- # Checks for header files.
- # Checks for typedefs, structures, and compiler characteristics.
- # Checks for library functions.
- AC_OUTPUT(Makefile)
Makefile.am文件:
- bin_PROGRAMS = hello # 生成的可执行文件名称.
- hello_SOURCES = Main.cpp A.h A.cpp B.h B.cpp # 程序依赖的源文件
- ubuntu 下AutoMake相关流程介绍
- Ubuntu 下使用automake
- ubuntu下gcc安装及相关介绍
- Linux下automake的相关函数
- Ubuntu下automake工具的使用
- Linux下服务器端开发流程及相关工具介绍(C++)
- Linux下服务器端开发流程及相关工具介绍(C++)
- automake介绍
- ubuntu automake
- Ubuntu下AMP环境搭建以及代码管理流程介绍
- linux下开发的automake相关文章--之一
- linux下开发的automake相关文章--之二
- linux下开发的automake相关文章--之三
- Linux下使用automake autoconf autoscan aclocal简单介绍
- autoconfig automake 流程
- autoconf automake相关
- ubuntu下mysql相关
- automake的简单介绍
- MySQL字符集查看方法
- struts2的常用常量介绍
- matlab 命令集-常用字符串函数
- 安卓开发者一定要收藏的网站
- 【美化§闪电精灵热门xp电脑主题下载§】
- ubuntu 下AutoMake相关流程介绍
- XMPP——Smack[5]文件传输及离线消息的获取
- HDU4619
- 编译内核出现:没有规则可以创建kernel.release需要的目标include/config/auto.conf
- Mysql中文乱码问题完美解决方案
- LayoutInflater.from(this)
- Ubuntu小私房(5)--Linux命令大全
- Bookmarks--How to establish Android Develop Environment
- android获取正在运行的桌面的包名