您好,登錄后才能下訂單哦!
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 <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
關于GNU-Tool中怎么實現自動化工程問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。