自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

autoconf安裝關(guān)于可移植的源代碼詳解

運(yùn)維 系統(tǒng)運(yùn)維
《Linux高級(jí)程序設(shè)計(jì)》《Linux高級(jí)程序設(shè)計(jì)》第3章可移植性,這一章大致被分為兩部分,前半部分介紹純軟件的可移植性,后半部分著重介紹為不同的硬件平臺(tái)編寫軟件,本節(jié)為大家介紹的是可移植的源代碼(GNU Autoconf)。

 

 

GNU Autoconf用于產(chǎn)生configure腳本,該腳本在編譯應(yīng)用程序之前運(yùn)行。configure腳本可以運(yùn)行一系列開發(fā)者要求的測(cè)試以確定該軟件是否可以在一個(gè)特定環(huán)境中編譯。例如,它可以確定你的機(jī)器上安裝的(GNU或非GNU)C編譯器的版本,并確保某些標(biāo)準(zhǔn)C頭文件已準(zhǔn)備好。它也可能會(huì)做一些更復(fù)雜的事情——GNU autoconf有著很大的靈活性。

 

GNU configure可以用于建立包含一個(gè)特定系統(tǒng)動(dòng)態(tài)信息的頭文件,這些動(dòng)態(tài)信息可用于源代碼測(cè)試。例如,一個(gè)編譯周期通常會(huì)創(chuàng)建一個(gè)頭文件config.h,它包含許多#define聲明對(duì)應(yīng)已經(jīng)經(jīng)過(guò)測(cè)試的特征。如果GNU configure確定本地軟件環(huán)境適合編譯軟件,那么這些定義將有助于增加軟件的靈活性,因?yàn)樗鼈冊(cè)试S在必要的時(shí)候進(jìn)行條件代碼編譯。

你很快會(huì)意識(shí)到需要使用GNU configure,因?yàn)樗鼘O大地簡(jiǎn)化了你在Linux上的開發(fā)工作。

下面是一個(gè)configure.in的示例文件,configure腳本就是通過(guò)它生成的:

  


你可以看到這個(gè)文件較短,而且只包含幾個(gè)命令(實(shí)際上都是一些宏,許多工具都是通過(guò)M4 宏處理器建立的,但并不影響這里的討論)。
configure.in文件以命令A(yù)C_PREREQ開頭,它要求Autoconf的***版本是2.59。因此,用于生成configure腳本的系統(tǒng)必須安裝了GNU Autoconf 2.59。其后的AC_INIT用于告訴Autoconf軟件包的名稱、版本和作者的電子郵件地址。隨后是一連串以AC開頭的命令,它們直接確定哪些特征和測(cè)試需要包含在configure腳本中。

你很快會(huì)了解到configure.in文件中其他行的含義。

這個(gè)示例文件中的主要Autoconf命令是:

AC_CANONICAL_SYSTEM:由Autoconf來(lái)確定是為主機(jī)編譯還是為另一個(gè)目標(biāo)系統(tǒng)編譯,并在必要時(shí)處理交叉編譯 。

AC_CONFIG_SRCDIR:測(cè)試是否存在文件src/hello.c,如果沒(méi)有發(fā)現(xiàn)它,將大聲抱怨。這用于確保用戶是在正確的目錄位置下運(yùn)行正確的腳本,等等。
 
AC_PROG_CC:測(cè)試是否存在C編譯器(例如,如果系統(tǒng)中安裝了GCC,它將檢測(cè)到它)。
 
AC_HEADER_STDC:測(cè)試標(biāo)準(zhǔn)C頭文件的可用性(在/usr/include目錄中)。
 
AC_C_BIGENDIAN:確定機(jī)器的字節(jié)序(詳見(jiàn)3.3節(jié))——如果需要,這是你可以添加的眾多定制測(cè)試中的一個(gè)。
 
AC_CHECK_HEADERS:指定要測(cè)試的額外的系統(tǒng)頭文件。
 
AC_OUTPUT:指定GNU Autoconf運(yùn)行之后將輸出的文件列表。在本例中,GNU Autoconf將導(dǎo)致在頂層目錄和子目錄src中生成Makefile文件。

configure腳本從configure.in文件中自動(dòng)生成并基于可移植的shell代碼。這一點(diǎn)非常重要,因?yàn)橐胫廊我唤o定的Linux或UNIX系統(tǒng)安裝的是哪種shell是非常困難(或不可能)的。雖然幾乎所有的Linux系統(tǒng)都會(huì)安裝bash,但既然存在這種可能性,我們還是值得提供這樣的靈活性。除非你決定編寫自己的configure測(cè)試,否則你不需要擔(dān)心要編寫自己的可移植shell代碼(如果真的需要,請(qǐng)查看Autoconf文檔)。

【編輯推薦】

  1. Linux 查看磁盤空間實(shí)現(xiàn)代碼介紹
  2. Linux操作系統(tǒng)需要微軟的十大幫助
  3. 探尋Linux到底需要多低的配置
  4. Linux測(cè)試工具tcpdump監(jiān)視TCP/IP連接命令介紹
  5. Linux流量控制實(shí)例應(yīng)用介紹
責(zé)任編輯:chenqingxiang 來(lái)源: 人民郵電出版社
相關(guān)推薦

2010-06-22 15:45:06

Autoconf使用

2010-06-22 17:05:04

Autoconf教程

2010-06-22 16:09:42

Autoconf教程

2017-12-26 09:35:33

2011-08-24 15:42:38

LUA源代碼

2010-06-22 16:18:54

2011-08-24 17:15:33

Lua源代碼文件

2009-06-22 13:41:00

Java開放源代碼Sun

2012-02-02 16:39:40

CheckBox控件源代碼

2022-09-15 07:55:22

WPFMAUI內(nèi)存

2010-03-02 10:44:52

Linux rpm

2011-08-24 16:24:54

Lua源代碼

2010-06-22 16:05:40

Autoconf rp

2010-06-22 14:55:21

autoconf安裝

2010-06-22 15:26:58

autoconf安裝

2010-06-22 15:13:32

autoconf安裝

2010-06-22 15:24:11

autoconf安裝

2011-08-25 14:03:32

UbuntuLUA安裝

2010-06-22 16:24:57

Autoconf教程

2010-06-22 16:31:59

Autoconf教程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)