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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM