前段时间,学习C,用autoconf和automake生成了一个简单的makefile文件。
autoconf是一个用于生成可以自动地配置软件源码包,用以适应多种UNIX类系统的shell脚本工具,其中autoconf需要用到 m4,便于生成脚本。automake是一个从Makefile.am文件自动生成Makefile.in的工具。为了生成Makefile.in,automake还需用到perl,由于automake创建的发布完全遵循GNU标准,所以在创建中不需要perl。
具体步骤如下:
1.在linux下新建一个helloworld目录。
2.在helloworld下新建一个helloworld.c文件,内容如下:
int main(int argc,char **argv){
printf("Hello,Linux World!\n");
return 0;
}
3.生成configure
3.1 先用autoscan命令根据源码生成configure.scan,把configure.scan重命名为configure.in,编辑此文件,找到
#Process this file with autoconif to ...
...<1>
#Checks for programs ...
...
AC_OUTPUT<2>
把<1>标注的内容改为:
AC_INIT(helloworld.c)
AM_INIT_AUTOMAKE(helloworld,1.0)
把<2>标注的内容改为:
AC_OUTPUT(makefile)
3.2 执行aclocal生成aclocal.m4文件
3.3 执行autoconf生成configure文件
4.新建Makefile.am,内容如下:
AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=helloworld.c
5.运行automake --add-missing 生成Makefile.in
6.执行configure生成Makefile
7.执行make生成helloworld.o,helloworld文件
8.运行程序,执行./helloworld
分享到:
相关推荐
依赖项是目标文件生成所必需的源文件或其他目标文件;规则则定义了如何从依赖项创建目标的命令。 在Makefile中,每个规则都有一个命令块,这些命令在目标需要更新时执行。例如,一个简单的C语言项目Makefile可能...
- **规则生成**:`automake`读取`Makefile.am`文件并生成`Makefile.in`,`configure`脚本会进一步处理这个文件。 - **库支持**:`automake`支持静态库和动态库的创建,包括libtool的支持,方便跨平台的库管理。 ...
6. **写入Makefile**:将上述步骤生成的规则和命令写入Makefile文件。 四、Makefile通用规则 - `clean`规则:通常会有一个`clean`目标,用于清理编译过程产生的临时文件,如`rm -f *.o executable`。 - `all`规则...
在文件列表中,我们看到一个名为`mainfile.exe`的文件,这可能是一个示例或实际的`Makefile`生成向导工具的可执行文件。运行这个程序,用户就能体验到`Makefile`生成的便利性。 总结来说,“makefile生成向导工具”...
==== Bakefile开发已移至GitHub:... 它以与编译器无关的生成任务描述作为输入,并生成本机生成文件(autoconf的Makefile.in,Visual C ++项目,密件抄送生成文件等)。
**如何编写Makefile文件** Makefile是软件构建自动化工具,用于协调编译和链接过程,尤其是在大型项目中,它可以简化构建过程,节省时间并避免重复劳动。以下是对Makefile基本语法和常见用法的详细解释。 ### 1. ...
2. **模式规则(Pattern Rule)**:允许一条规则匹配多个目标,例如,`%.o: %.c`表示所有`.c`文件生成对应的`.o`对象文件。 **三、隐含规则(Implicit Rule)** makefile包含一系列内建的隐含规则,知道如何处理...
Linux内核2.6的Makefile文件是整个操作系统编译过程的核心,它是构建系统的关键部分。这个复杂的脚本管理着内核源代码的编译、链接以及模块的生成,确保了整个开发流程的高效和一致。在Linux内核源代码树中,...
1. **目标与依赖**:`Makefile`中的目标通常是一个可执行文件或库,而依赖项是生成目标所需的文件,如`.c`或`.cpp`源文件。例如: ```make program: main.o func1.o func2.o gcc -o program main.o func1.o func2...
Autoconf 会根据 configure.in 文件生成 configure 脚本,而 Automake 会根据 configure 脚本生成 Makefile。 使用./configure, make, make install 安装程序 最后,我们可以使用./configure, make, make install ...
### Glade工程生成Makefile文件详解 #### 一、引言 在Linux环境下进行GUI编程时,使用Glade工具设计界面是一种非常常见的做法。Glade是一个用于GTK+库的图形化用户界面设计器,它能够帮助开发者快速构建美观且功能...
### Linux下Makefile文件的编写 #### Makefile文件的基本概念与作用 Makefile是一种用于自动化构建过程的脚本文件,在Linux环境下广泛应用于软件项目的编译、链接等操作中。通过定义一系列规则,Makefile能够自动...
Makefile 文件规定了源文件如何编译成中间目标文件,再由中间目标文件生成执行文件。 1.1 Makefile 文件的编译过程 Makefile 文件的编译过程可以分为两步:编译和链接。在编译过程中,编译器检测程序的语法和函数...
Automake会根据这个文件生成Makefile.in。 4. **添加aclocal.m4**:如果需要自定义宏,可以创建`m4`目录并在其中编写宏定义,然后运行`aclocal`命令,将宏添加到`aclocal.m4`文件中。 5. **运行Autoreconf**:在...
"hello-makefile自生成"这个主题,就是关于如何创建并自动生成一个简单的Makefile,用于构建一个名为"hello"的项目。 首先,我们需要理解Makefile的基本结构。一个Makefile通常包含目标(target)、依赖...
在给定的场景中,`AutoMake.sh`是一个Shell脚本,用于自动创建Makefile文件,使得用户在编写C语言程序时,可以更加便捷地管理和构建项目。 1. **Makefile基本结构**:Makefile通常包含目标(target)、依赖文件...
`automake`则是一个从`Makefile.am`文件生成`Makefile.in`的工具,最终由`configure`脚本将`Makefile.in`转换为特定平台的Makefile。 在使用`autoconf`和`automake`之前,我们需要先了解项目的目录结构。例如,一个...
Makefile通常包含一系列目标(target)和规则(rule),每个目标对应一个或多个输出文件,而规则则指明了如何从特定的输入文件生成这些输出文件。 #### Automake与Autoconf的作用 - **Automake**:负责生成...
ubuntu系统生成静态库.a的makefile文件
Makefile 文件会根据内核源代码生成多个目标文件,包括目标定义、内嵌对象、可加载模块、导出符号目标、库文件等。 3.1 目标定义 目标定义是 Makefile 文件中最基本的概念,定义了编译过程的入口和出口。目标定义...