成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

autoconf安裝關于可移植的源代碼詳解

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

 

 

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

 

GNU configure可以用于建立包含一個特定系統動態信息的頭文件,這些動態信息可用于源代碼測試。例如,一個編譯周期通常會創建一個頭文件config.h,它包含許多#define聲明對應已經經過測試的特征。如果GNU configure確定本地軟件環境適合編譯軟件,那么這些定義將有助于增加軟件的靈活性,因為它們允許在必要的時候進行條件代碼編譯。

你很快會意識到需要使用GNU configure,因為它將極大地簡化了你在Linux上的開發工作。

下面是一個configure.in的示例文件,configure腳本就是通過它生成的:

  


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

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

這個示例文件中的主要Autoconf命令是:

AC_CANONICAL_SYSTEM:由Autoconf來確定是為主機編譯還是為另一個目標系統編譯,并在必要時處理交叉編譯 。

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

configure腳本從configure.in文件中自動生成并基于可移植的shell代碼。這一點非常重要,因為要想知道任一給定的Linux或UNIX系統安裝的是哪種shell是非常困難(或不可能)的。雖然幾乎所有的Linux系統都會安裝bash,但既然存在這種可能性,我們還是值得提供這樣的靈活性。除非你決定編寫自己的configure測試,否則你不需要擔心要編寫自己的可移植shell代碼(如果真的需要,請查看Autoconf文檔)。

【編輯推薦】

  1. Linux 查看磁盤空間實現代碼介紹
  2. Linux操作系統需要微軟的十大幫助
  3. 探尋Linux到底需要多低的配置
  4. Linux測試工具tcpdump監視TCP/IP連接命令介紹
  5. Linux流量控制實例應用介紹
責任編輯:chenqingxiang 來源: 人民郵電出版社
相關推薦

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源代碼文件

2010-06-22 16:05:40

Autoconf rp

2022-09-15 07:55:22

WPFMAUI內存

2009-06-22 13:41:00

Java開放源代碼Sun

2012-02-02 16:39:40

CheckBox控件源代碼

2011-08-24 16:24:54

Lua源代碼

2010-06-22 15:24:11

autoconf安裝

2010-03-02 10:44:52

Linux rpm

2010-06-22 14:55:21

autoconf安裝

2010-06-22 15:26:58

autoconf安裝

2010-06-22 15:13:32

autoconf安裝

2010-06-22 16:31:59

Autoconf教程

2011-08-25 14:03:32

UbuntuLUA安裝

2010-06-22 16:24:57

Autoconf教程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级黄色录像片子 | 欧美日韩久久 | 秋霞av国产精品一区 | 中文字字幕一区二区三区四区五区 | 国产超碰人人爽人人做人人爱 | 99re国产视频 | 成人免费观看男女羞羞视频 | 久久99精品国产麻豆婷婷 | 麻豆av在线免费观看 | 亚洲成av人影片在线观看 | 亚洲一区视频 | 成人无遮挡毛片免费看 | 国产在线精品一区二区 | 亚洲免费人成在线视频观看 | 欧美老少妇一级特黄一片 | 国产精品免费观看 | 久久精品国产免费一区二区三区 | www.日日干| 国产精品久久 | 久久久久91| 欧美video| 中文字幕乱码视频32 | 亚洲一区二区在线视频 | 精品视频一区二区在线观看 | caoporn国产精品免费公开 | h在线| 欧美久久一级特黄毛片 | 韩日中文字幕 | 精品免费国产视频 | 中文字幕视频在线观看 | 日韩欧美在线播放 | 一区视频| 中文字幕11页 | 国产精品av久久久久久久久久 | 九九伊人sl水蜜桃色推荐 | 欧美色欧美亚洲另类七区 | 在线国产视频 | 欧美黄色片 | 91免费福利视频 | 国产高清视频一区 | 久久精品国产久精国产 |