automake使用过程如下:
1.建目录
在工作目录下建一个hello目录,用它来存放hello程序及相关文件。
2.编写程序
利用gedit编写C程序:实现万年历功能的Hello.h和Hello.c程序及主程序Main.c。
3.生成configure
执行autoscan命令生成一个名为configure.scan的文件,我们拿它作为configure.in的蓝本。将configure.scan改名为configure.in,然后打开configure.in,将文件修改为一下内容:
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.57)
AC_INIT(Main, 1.0, BUG-REPORT-ADDRESS)
AM_INIT_AUTOMAKE(Main, 1.0)
AC_CONFIG_SRCDIR([Hello.h])
AM_CONFIG_HEADER([config.h])
# Checks for programs.
AC_PROG_CC
# Checks for libraries.
# Checks for header files.
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_FUNC_MALLOC
AC_OUTPUT(Makefile)
然后先执行aclocal命令,生成aclocal.m4文件,再执行autoconf命令,生成configure文件。
4.执行autoheader命令
执行autoheader命令,生成config.h.in。这一步非常重要,网上很多的automake生成Makefile方法中都没有包含这一步,然而,缺少这一步将会出错。
5.编写Makefile.am
新建Makefile.am文件,写入如下内容:
AUTOMAKE_OPTIONS = foreign
bin_PROGRAMS = Main
Main_SOURCES = Main.c Hello.c
6.运行automake
使用命令"automake --add-missing" automake会根据Makefile.am产生一些文件,包括最重要的Makefile.in文件。
7. 执行configure生成Makefile
执行/.configure命令,即可生成Makefile。
8.生成可执行文件
在终端上输入:make,即可生成可执行程序Main。
9.运行Main
输入./Main,运行Main程序。
分享到:
相关推荐
- **`automake`**: 从 `Makefile.am` 文件中提取结构并生成 `Makefile.in`。 - 如果存在特定宏,则调用 `libtoolize` 来生成额外的配置文件;否则,自动生成 `config.guess` 和 `config.sub`。 - **`autoconf`**:...
GNU Automake的主要作用是简化Makefile的编写工作,开发者只需要编写一些模板文件(通常是configure.ac或者Makefile.am),然后通过Automake工具处理这些模板文件,自动生成Makefile.in文件。之后,当运行configure...
在使用mooon编译系统时,用户首先需要准备几个关键文件,包括configure.ac.in、Make.rule.in以及主目录和子目录下的Makefile.am文件。这些文件通过bootstrap.sh脚本处理后,会生成相应的Makefile.am文件,此时用户不...
在编写和修改`configure.in`和`Makefile.am`时,开发者需要注意宏的正确使用和顺序,因为宏的执行顺序可能会影响到配置和构建过程。虽然宏的调用顺序不是强制的,但遵循一定的最佳实践可以避免潜在的问题。 总结...
Autoconf 是一个生成配置脚本的工具,而 Automake 则是一个从文件 `Makefile.am` 自动生成 `Makefile.in` 的工具。它们可以共同生成 Makefile,提高软件开发的效率。 Makefile 的概念 Makefile 是一个文本文件,它...
接着,创建 "Makefile.am" 文件,这是 AutoMake 的主要输入文件,定义了源文件、目标文件和编译规则。对于简单的 "hello" 示例,"Makefile.am" 可以如下所示: ```makefile bin_PROGRAMS = hello hello_SOURCES = ...
运行`automake -a`命令更新`Makefile.in`文件,这一步是基于`Makefile.am`文件进行的。最后,执行`./configure`脚本,它会根据当前系统的配置生成最终的`Makefile`文件。 在`configure.in`文件中,`AC_CONFIG_...
4. **创建 `Makefile.am`**:为每个源代码文件所在的目录创建一个 `Makefile.am` 文件,用于描述构建规则。在项目根目录下创建如下内容的 `Makefile.am`: ```makefile bin_PROGRAMS = MyFirst_EXE MyFirst_EXE_...
`autotools`可以理解为一个流程,包括编写`configure.ac`(`autoconf`的输入)、运行`autoconf`生成`configure`脚本,然后编写`Makefile.am`(`automake`的输入),运行`automake`和`autoheader`生成`Makefile.in`和...
比如,`configure.ac`和`Makefile.am`是Autotools项目中的核心文件,它们定义了编译和安装的规则。新版本可能对这些文件进行了调整,以适应新的功能需求或改善构建流程。`AUTHORS`文件列出了所有贡献者,向他们表示...
运行 `automake` 命令根据 `Makefile.am` 文件生成 `Makefile.in`。这个文件包含了具体的构建规则和依赖关系。 7. **./configure 命令** 最后,执行 `./configure` 命令根据 `Makefile.in` 生成最终的 `Makefile...
- configure.ac和Makefile.am的语法需要遵循GNU的规范,否则automake可能无法正确处理。 - 修改configure.ac或Makefile.am后,需要重新运行automake和autoconf以更新构建脚本。 总结来说,`automake-1.13.4.tar.gz`...
当项目中包含Automake文件(通常是Makefile.am)时,Automake会根据这些文件生成Makefile.in模板,这些模板包含了编译和安装程序所需的指令。 **Automake的主要特点:** 1. **遵循GNU标准**:Automake确保项目遵循...
`automake` 是一个辅助工具,它根据 `Makefile.am` 文件生成 `Makefile.in`。`Makefile.am` 文件定义了编译规则,如目标程序、库、安装路径等。例如,`bin_PROGRAMS` 定义了可执行程序的名字,`XXX_SOURCES` 指定...
8. **处理makefile.am生成makefile.in**:运行automake命令来处理makefile.am文件,并生成makefile.in文件。在这个过程中,可以通过设置AUTOMAKE_OPTIONS来指定软件等级(foreign、gnu或gnits)。 9. **生成最终的...
- **规则生成**:`automake`读取`Makefile.am`文件并生成`Makefile.in`,`configure`脚本会进一步处理这个文件。 - **库支持**:`automake`支持静态库和动态库的创建,包括libtool的支持,方便跨平台的库管理。 ...
6. **配置项目**:依次运行aclocal、autoconf、automake--add-missing等命令,这些命令会依据configure.in和Makefile.am生成configure脚本和Makefile.in文件。 7. **生成Makefile**:运行配置脚本configure,它会...
- 打开提供的 myproject 压缩包,解压后可以看到项目的基础结构,包括 configure.ac 和 Makefile.am 文件。 - configure.ac 文件可能包含了一些通用的宏和检测代码,用于设置项目配置。 - Makefile.am 文件是关键...