linux软件证券,linux
1.說明
在*nix環境下,經常通過源碼安裝軟件。./configure make make install基本上都是定式了。本文對于configure的基本原理進行闡述,并借助http://concurrencykit.org/開源包的configure文件,對于實際的運行過程進行分析。
2.configure基本背景
configure文件主要是對于軟件在不同平臺編譯時,對于硬件平臺環境、編譯器、頭文件、安裝目錄等進行配置,生成makefile文件,然后再進行編譯。(在configure還沒有執行的時候,直接make,出現錯誤*** No targets specified and no makefile found. Stop.應該都遇到過吧 ^_^)。
configure文件通常是用bash腳本編寫。也就是通過執行一系列的腳本生成最后的makefile文件。所以讀者可以先看看bash相關的基礎內容。
3.configure模塊分析
在configure執行的過程中,通常涉及到(1)基本設置;(2)參數解析;(3)操作系統相關;(4)平臺架構信息;(5)編譯環境檢查;(6)頭文件檢查;(7)makefile文件生成等幾個方面。我們對于上述幾個執行部分逐一進行分析。
3.1基本設置
通常configure文件中含有了軟件版本信息、基本路徑設置等配置信息。
#變量替換,可以參照:http://en.kioskea.net/faq/1310-replacing-variables-in-bash-shell
#VERSION=${VERSION:-'0.2.8'} var=${var:-‘default’}
#如果 VERSION 沒有被設置,則使用默認的’0.2.8’
VERSION=${VERSION:-'0.2.8'}
VERSION_MAJOR='0'
BUILD="$PWD/build/ck.build"
PREFIX=${PREFIX:-"/usr/local"}
3.2參數解析
在執行configure的時候,通常可以輸入路徑等參數,對于安裝路徑、lib包位置等進行設置(比如:./configure --prefix=/usr/local)。
#$*代表輸入的參數列表,從參數 1 開始,即:忽略了本身的 configure
#value=獲得輸入的參數,并且取得參數的值
# sed -e 's/^[^=]*=\(.*\)/\1/'對于參數進行解析,獲得”=”之后的內容
#其中,^[^=]*= 從每行開頭查找不是=開始的多個字符且以=結束,
#\(.*\)/\1 將=之后的內容替換整個行
#可以參照:http://www.grymoire.com/Unix/Sed.html#uh-4
for option in $*; do
value=`echo "$option" | sed -e 's/^[^=]*=\(.*\)\1/'`
#比如:輸入./configure -–help
case "$option" in
#則通過 case 語句,執行 help 中的語句
--help)
echo "Usage: ./configure [OPTIONS]"
;;
#*為通配符,即option為"--profile=*"
--profile=*)
PROFILE=$value
;;
--prefix=*)
PREFIX=$value
;;
--includedir=*)
HEADERS=$value
esac done
對于輸入的參數逐一進行解析,根據不同的參數設定不同的參數值。 繼續閱讀 →
總結
以上是生活随笔為你收集整理的linux软件证券,linux的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【0.96寸 OLED屏实现1500Fp
- 下一篇: Linux 学习_在Linux下面安装t