溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

GNU-Tool中怎么實(shí)現(xiàn)自動化工程

發(fā)布時間:2021-08-10 11:38:31 來源:億速云 閱讀:162 作者:Leah 欄目:云計算

GNU-Tool中怎么實(shí)現(xiàn)自動化工程,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.autoscan

autoscan 用來在給定目錄及其子目錄樹中檢查源文件,掃描源代碼目錄從而生成 configure.scan 文件。autoscan 可以用目錄名作為參數(shù),也可以省略參數(shù),此時 autoscan 將把當(dāng)前目錄當(dāng)作參數(shù)。

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

2.aclocal 

aclocal 是一個 perl 腳本程序。aclocal 根據(jù) configure.in 文件的內(nèi)容,自動生成 aclocal.m4 文件。aclocal 的定義是: “ aclocal-create aclocal.m4 by scanning configure.ac " 

3.autoconf

autoconf 是用來產(chǎn)生 configure 文件的。configure 是一個腳本,它能設(shè)置源程序來適應(yīng)不同的操作系統(tǒng)平臺,并且根據(jù)不同的系統(tǒng)生成合適的 Makefile ,從而可以使源代碼能夠在不同的操作系統(tǒng)平臺上被編譯出來。

4.autoheader

autoheader 負(fù)責(zé)生成 config.h.in 文件。該工具通常從 acconfig.h 文件中復(fù)制用戶添加的符號定義。

5.automake

automake 是工具集中的重要成員之一,它調(diào)用腳本文件 Makefile.am , 并最終生成 configure 文件。我們就是通過調(diào)用 configure 文件來自動產(chǎn)生 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

測試程序

測試函數(shù)庫

測試頭文件

測試類型定義

測試結(jié)構(gòu)

測試編譯器特性

測試庫函數(shù)

測試系統(tǒng)調(diào)用

AC_OUTPUT

加入下面兩個宏在configure.ac文件中

AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 生成make參數(shù)

AC_CONFIG_FILES([Makefile])  宏用于生成相應(yīng)的 Makefile 文件

第五步 這里可能會生成一個 aclocal.m4 ,該文件主要處理本地的宏定義:

aclocal

第六步驟 生成configure文件

autoconf

第七步 生成配置頭文件

autoheader

第八步 創(chuàng)建Makefile.am,增加編譯目標(biāo)文件和源文件

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 <config.h>
#include <stdio.h>

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

關(guān)于GNU-Tool中怎么實(shí)現(xiàn)自動化工程問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI