GNU-Tool中怎么实现自动化工程

GNU-Tool中怎么实现自动化工程,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、雅安服务器托管、营销软件、网站建设、十堰网站维护、网站推广。

1.autoscan

autoscan 用来在给定目录及其子目录树中检查源文件,扫描源代码目录从而生成 configure.scan 文件。autoscan 可以用目录名作为参数,也可以省略参数,此时 autoscan 将把当前目录当作参数。

configure.scan 文件很重要,它是 configure.in 文件的原型,通过修改 configure.scan 后得到 configure.in 文件。

2.aclocal 

aclocal 是一个 perl 脚本程序。aclocal 根据 configure.in 文件的内容,自动生成 aclocal.m4 文件。aclocal 的定义是: “ aclocal-create aclocal.m4 by scanning configure.ac " 

3.autoconf

autoconf 是用来产生 configure 文件的。configure 是一个脚本,它能设置源程序来适应不同的操作系统平台,并且根据不同的系统生成合适的 Makefile ,从而可以使源代码能够在不同的操作系统平台上被编译出来。

4.autoheader

autoheader 负责生成 config.h.in 文件。该工具通常从 acconfig.h 文件中复制用户添加的符号定义。

5.automake

automake 是工具集中的重要成员之一,它调用脚本文件 Makefile.am , 并最终生成 configure 文件。我们就是通过调用 configure 文件来自动产生 makefile 的。

第一步 扫描本地目录

autoscan

第二步 重新命名为ac文件

mv configure.scan configure.ac

第三部 编辑configure.ac

第四步configure.ac文件宏说明:

AC_PRERREQ 宏声明文件要求的 autoconf 版本

AC_INIT 宏用来定义软件的名称和版本等信息。

其中FULL-PACKAGE-NAME 表示软件的名称;

VERSION 为软件的版本号; 

BUG-REPORT-ADDRESS 一般为作者的 E-mail

文件宏顺序说明:

AC_INIT

测试程序

测试函数库

测试头文件

测试类型定义

测试结构

测试编译器特性

测试库函数

测试系统调用

AC_OUTPUT

加入下面两个宏在configure.ac文件中

AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 生成make参数

AC_CONFIG_FILES([Makefile])  宏用于生成相应的 Makefile 文件

第五步 这里可能会生成一个 aclocal.m4 ,该文件主要处理本地的宏定义:

aclocal

第六步骤 生成configure文件

autoconf

第七步 生成配置头文件

autoheader

第八步 创建Makefile.am,增加编译目标文件和源文件

Makefile.am

第九步 生成Makefile文件

automake --add-missing

第十步 编译配置

./configure --prefix=$(pwd)/install

第十一步

make && make install

simple:

Makefile.am

SUBDIRS = src
dist_doc_DATA = README.md

README.md

Some doc.

configure.ac

AC_INIT([automake_hello_world], [1.0], [bug-automake@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
 Makefile
 src/Makefile
])
AC_OUTPUT

src/Makefile.am

bin_PROGRAMS = autotools_hello_world
autotools_hello_world_SOURCES = main.c

src/main.c

#include 
#include 

int main (void) {
  puts ("Hello world from " PACKAGE_STRING);
  return 0;
}

Usage

autoreconf --install
mkdir build
cd build
../configure
make
sudo make install
autoconf_hello_world
sudo make uninstall

This outputs:

Hello world from automake_hello_world 1.0

关于GNU-Tool中怎么实现自动化工程问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


当前名称:GNU-Tool中怎么实现自动化工程
链接地址:http://scyanting.com/article/jhiiej.html