您好,登錄后才能下訂單哦!
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)知識。
免責(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)容。