树莓派Linux下利用autoconf工具自动生成makefile文件(自动)

本文主要总结在树莓派Linux下利用autoconf工具自动生成makefile文件,接着只需要输入make命令就可以生成可执行程序,然后执行可执行程序(手动编写makefile文件可以参考博主这篇博客:https://blog.csdn.net/naibozhuan3744/article/details/86103552),全文主要分为两大部分,分别是环境安装和示例用法,具体内容如下所述。

一、相关环境安装

要用autoconf工具自动生成makefile文件,需要安装autoconf脚本,一般情况下Linux是没带的。博主用的是树莓派自带的Linux系统(raspberry),安装autoconf输入下面命令:(如果第一次安装失败,可以输入sudo apt-get update,然后重新安装几次)

sudo apt-get install autoconf

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第1张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第2张图片

 

二、用autoconf自动生成一个makefile文件示例

2.1在工程目录下,新建一个main.c文件,输入下面内容;

#include 

int main(int argc, char** argv)

{
    printf("This is an Auto Makefile!\n");
    return 0;
}

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第3张图片

2.2进入工程所在目录,输入命令autoscan,增加两个文件,分别为autoscan.log、configure.scan。

autoscan

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第4张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第5张图片

 

2.3将configure.scan重新命名为configure.in,并且将其内容修改如下:

原来的configure.in内容

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADERS([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_OUTPUT

 

修改后的configure.in内容

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT(main, 1.0, [email protected])		//modify
AC_CONFIG_SRCDIR([main.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(main,1.0)					//new increase

# 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_CONFIG_FILES([Makefile])					//if there is,there is no increase

AC_OUTPUT

 

2.4接着输入命令aclocal,两个文件,分别为aclocal.m4、autom4te.cache,该文件的功能是处理宏定义;

aclocal

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第6张图片

 

2.5接着输入命令autoconf,生成configure文件,如下图所示:

autoconf

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第7张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第8张图片

 

2.6接着输入命令autoheader,生成config.h.in文件;如果没有附加符号定义,就不需要创建“acconfig.h”文件。

至此,configure文件基本创建完毕,接下来是创建makefile文件。

autoheader

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第9张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第10张图片

 

2.7在工程目录下,创建一个名为Makefile.am的文件,输入下面内容:(代码内容参考这篇博客:https://blog.csdn.net/qq_19004627/article/details/79061457#commentsedit)

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=main
main_SOURCES=main.c

脚本配置文件Makefile.am通过automake编译转换为Makefile.in。

 

2.8接着输入命令automake --add-missing,生成Makefile文件。其中,--add-missing表示automake运行时,会自动添加一些必要的脚本文件。

automake --add-missing

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第11张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第12张图片

 

2.9继续输入命令configure,将Makefile.in自动配置为Makefile。

./configure

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第13张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第14张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第15张图片

 

2.10输入命令make,编译生成可执行程序main,结果如下图所示:

make

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第16张图片

 

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第17张图片

 

2.11输入命令./main,程序执行如下图所示。

./main

树莓派Linux下利用autoconf工具自动生成makefile文件(自动)_第18张图片

 

至此,所有的配置和编译步骤结束!

 

 

参考内容:

https://blog.csdn.net/qq_19004627/article/details/79061457#commentsedit(参考:autoconf工具自动生成makefile文件)

https://blog.csdn.net/liang890319/article/details/8274917(参考:autoconf工具安装)

https://blog.csdn.net/ztguang/article/details/51015373(参考:makefile中makefile.am内容讲解)

你可能感兴趣的:(嵌入式积累,Linux积累)