1. 程式人生 > >configure配置安裝詳解

configure配置安裝詳解

使用 ./configure  --help 就可以檢視到所有的配置選項。

 

1、--host=HOST
指定軟體執行的系統平臺.如果沒有指定,將會執行`config.guess'來檢測.--host 指定的是交叉編譯工具鏈的字首

2、--build=BUILD
指定軟體包安裝的系統平臺,如當前我們是在intel的pentium機器中編譯該系統,那麼我們的--build就可能
是i686-pc-linux-gnu,.如果沒有指定,預設值將是'--host'選項的值.

3、--target=GARGET
指定軟體面向(target to)的系統平臺.這主要在程式語言工具如編譯器和彙編器上下文中起作用.如果沒有指定,預設將使用'--host'選項的值. 

一般而言,我們只要指定 --host 就可以了,在--build和--host不同的時候就被配置檔案認定為進行交叉編譯,否則就是表示本地編譯。
從這三個引數的含義來看,說明其處理的目標只有在不同平臺下表現為不同的時候才有作用,而這些檔案通常都跟目標平臺的指令系統直接或間接關:比如可執行檔案,對於不同平臺下使用的可執行檔案的編碼可以是完全不同的,因此必須使用 對應能處理該編碼的程式才能正確處理,而如果錯誤的使用則可能導致程式錯誤或者破壞檔案,對於這樣要處理不同平臺下會 出現不同編碼的軟體,我們就應當對它指定目標平臺,以免另其錯誤處理;而對於文字檔案,對於不同的平臺同樣的內容表達的 含義都是相同的,因此我們不需要專門針對平臺來處理,這樣的軟體我們就可以不必對它指定需要處理的平臺了。
在交叉編譯之後,可以用file *** 指令,檢視生成的檔案的型別,如果不對的話,就可以去檢視config.log檔案,看看有沒有找到相應的編譯工具鏈。


4、-enable-FEATURE[=ARG]
相反的,一些軟體包可能提供了一些預設被禁止的特性,可以使用'--enable-FEATURE'來起用它.這裡'FEATURE'是特性的名字.一個特性可能會接受一個可選的引數.例如:
$ ./configure --enable-buffers=128

5、`--enable-FEATURE=no'與上面提到的'--disable-FEATURE'是同義的.


--enable-static:生成靜態連結庫

--enable-shared:生成動態連結庫

這兩個用來選擇生成是靜態庫還是動態庫,但是我配置了無效,具體我也不知道為什麼,希望有了解的不吝賜教。

6、'--with-PACKAGE[=ARG]'
在自由軟體社群裡,有使用已有軟體包和庫的優秀傳統.當用'configure'來配置一個原始碼樹時,可以提供其他已經安裝的軟體包的資訊.例如,倚賴於Tcl和Tk的BLT器件工具包.要配置BLT,可能需要給'configure'提供一些關於我們把Tcl和Tk裝的何處的資訊: 
$ ./configure --with-tcl=/usr/local --with-tk=/usr/local

'--with-PACKAGE=no'與下面將提到的'--without-PACKAGE'是同義的.

7、'--without-PACKAGE'
有時候你可能不想讓你的軟體包與系統已有的軟體包互動.例如,你可能不想讓你的新編譯器使用GNU ld.通過使用這個選項可以做到這一點:
$ ./configure --without-gnu-ld


8、也可以配置它們的環境變數,如:


<span style="font-family:SimSun;font-size:14px;"> CC C compiler command
CFLAGS C compiler flags</span>
9、'--prefix=PREFIX'
'--prefix'是最常用的選項.製作出的'Makefile'會檢視隨此選項傳遞的引數,當一個包在安裝時可以徹底的重新安置他的結構獨立部分.
舉一個例子,當安裝一個包,例如說Emacs,下面的命令將會使Emacs Lisp file被安裝到"/opt/gnu/share":
$ ./configure --prefix=/opt/gnu


10、'--bindir=DIR'
指定二進位制檔案的安裝位置.這裡的二進位制檔案定義為可以被使用者直接執行的程式.

11、'--sbindir=DIR'
指定超級二進位制檔案的安裝位置.這是一些通常只能由超級使用者執行的程式.

 

12、'--libdir=DIR'
指定庫檔案的安裝位置.

13、'--includedir=DIR'
指定C標頭檔案的安裝位置.其他語言如C++的標頭檔案也可以使用此選項.

更為詳細的引數的介紹請參考:http://blog.csdn.net/williamwang2013/article/details/8529954

http://blogger.org.cn/blog/more.asp?name=lhwork&id=22496

在此之後,就會自動生成Makefile檔案,如果要修改編譯器環境等,可以這個時候修改生成的Makefile檔案,也可以在。/configure之前,先source下交叉編譯需要的環境變數。如果編譯的是庫檔案,就可以把庫檔案和相應的標頭檔案包含到工程中就可以使用了 。
---------------------
作者:Captain--Jack
來源:CSDN
原文:https://blog.csdn.net/u010977122/article/details/52959098?utm_source=copy
版權宣告:本文為博主原創文章,轉載請附上博文連結!