configure編譯參數
1. linux 下的 make, configure 究竟有多難用
聽過身邊很多個程序員朋友說Linux這個系統慢慢慢慢地就變得不好用了。
所以,在Linux下安裝一個應用程序時,一般需要先運行腳本configure,然後用make來編譯源程序,在運行make install,最後運行make clean刪除一些臨時文件。使用上述三個自動工具,就可以生成configure腳本。運行configure腳本,就可以生成Makefile文件,然後就可以運行make、make install和make clean。操作的復雜,可見一斑。
2. configureLinux系統下Configure命令參數解釋說明
Linux系統下的configure腳本提供了豐富的命令行選項,以適應不同的軟體包需求。執行帶有'--help'選項的configure腳本,可以查看所有可用選項。雖然大部分選項用得不多,但在特殊配置時了解它們的存在是有益的。接下來,我們將簡要介紹一些常用選項的功能:
--cache-file=FILE: 'configure'會測試系統特性,將測試結果存儲在cache文件中,以加速後續配置。在處理大型源碼樹時,一個有效的緩存文件將大有裨益。
--help: 顯示幫助信息,即使是經驗豐富的用戶在遇到復雜項目時,也可能需要這個選項來查看額外的配置選項,如GCC包中的選項。
--no-create: 阻止'configure'生成輸出文件,可以作為預演,盡管cache仍會被更新。
--quiet/--silent: 在測試過程中,減少輸出信息,讓用戶知道配置進行中,即使速度較慢,以免用戶感到疑惑。
--version: 顯示用於生成configure腳本的Autoconf版本號。
--prefix=PEWFIX: 'prefix'選項是最常見的,用於指定安裝文件的根目錄,如安裝Emacs時,使用`./configure --prefix=/opt/gnu`。
--exec-prefix=EPREFIX和`--prefix`類似,但用於設置依賴文件的安裝位置,如編譯好的二進制文件。
其他選項如`--bindir`、`--sbindir`、`--libexecdir`等分別定義了不同類型的文件安裝位置。配置時,這些選項對於確定程序的安裝結構至關重要。
最後,通過`--build`、`--host`和`--target`選項,可以指定軟體包的構建、運行和目標系統平台。而`--disable-FEATURE`和`--enable-FEATURE`用於啟用或禁用軟體包中的特定特性,如使用Kerberos認證或編譯器優化。
在依賴外部軟體包時,`--with-PACKAGE`和`--without-PACKAGE`用於指定已安裝包的信息,或避免軟體包之間的交互。`--x-includes`和`--x-libraries`則是與X11相關的選項。
為了更好地管理源碼和構建過程,建議使用三個獨立的樹:源碼樹、構建樹和安裝樹,如配置GNU malloc包的例子所示。
(2)configure編譯參數擴展閱讀
[kən'fiɡə] [ 過去式configured 過去分詞configured 現在分詞configuring ]
3. linux ./configure 如果多次,在編譯的時候參數設置是根據最後次的來決定嗎
是的,後一次編譯會修改前一次編譯結果。
4. 如何編譯配置Apache中的Configure
./Configure文件是一個經常被遺忘的Apache工具。本文介紹如何用./Configure進行編譯配置,避免每次編譯Apache時進行重復的操作。文章比較了常規方法與使用./Configure這兩者各自的優缺點以及如何手工編輯配製文件進行編譯配置。 一、優缺點比較 我們知道,配製Apache編譯選項使用的是configure。但除此之外,我們還可以使用Configure。注意兩者的差別:常用的那個配製工具是小寫c開頭的「configure」,這里要討論的「Configure」以大寫的C開頭。 解開Apache源代碼之後,configure腳本位於頂級目錄下面。一般我們按照如下步驟使用它: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14 ./configure --prefix=/usr/local/apache make make install Configure是位於src子目錄下的腳本。它的參數不是通過命令行指定,而是在一個名為Configuration的配置文件中指定。Apache提供一個默認的配置模板文件Configuration.tmpl,其中包含了通用的默認配置值。 用Configure進行默認安裝的過程如下: tar -zvxf apache_1.3.14.tar.gz cd apache_1.3.14/src cp -f Configuration.tmpl Configuration vi Configuration ... 如必要,修改默認配置值 ./Configure make make install 缺點 用Configure進行配製有幾個明顯的缺點,至少對初學者來說是這樣的。 首先,這種配製方法並不廣為人知。只要是對開放源代碼軟體有所了解的人,解開源代碼並進入它的目錄之後,或許會對它的configure腳本感到熟悉,但往往不會進入src子目錄去尋找其他什麼東西。 即使知道可以用Configure進行編譯配製,Configuration文件本身也可能成為小小的障礙。這是因為,雖然Configuration文件內部包含的說明相當完善,每一行都有豐富的註解說明其作用,但這個文件實在過於龐大,包含了許多大多數人永遠不想要加以定製的選項。 最後,雖然有關這兩種配製方法差別的資料略顯缺乏,但總地看來初學者最好使用configure,而Configure只適合於經驗豐富的用戶使用。雖然這並不能算是一個真正的缺點,但它無疑使許多用戶駐足而不敢嘗試。 優點 使用Configure進行編譯配製最大的優點在於,它方便了我們將特定的配置信息保存下來以後再用,無需記住冗長的configure命令行選項。 例如,本人上次編譯Apache時使用的configure命令如下: ./configure --prefix=/usr/local/apache --enable-mole=most --enable-shared=max --enable-mole=auth_dbm --enable-mole=auth_mysql 這還應該算是一次比較簡單的編譯。問題在於,即使是輸入上面這行命令,我也要查看各種參數的語法並努力記住各個模塊的名字。對於大多數人來說這並不是一個很重要的問題,但由於我經常要重新構造Apache,這個問題就顯得比較突出了。 configure也有它的好處,它實際上會在src目錄下生成一個配製文件,我們可以保存這個文件供以後參考。這個文件就是src/Configuration.apaci。 如果我們為測試目的構造Apache,完成後又要在正式運行的系統上以完全相同的方式構造Apache,configure的這個功能將是非常有用的。此時,我們只需要復制一份Configuration.apaci文件,將它拷貝到正式運行的伺服器上,然後用這個文件編譯Apache伺服器即可。 應當說明的是,雖然默認情況下配製選項由Configuration文件提供,但我們可以用-file參數指定另外的文件: ./Configure -file Configuration.saved_prefs 二、手工編輯配製文件 以前,指定編譯選項的唯一方法是手工編輯Configuration文件。當然,那時候我們還要步行上學,跋山涉水。這一切現在都已經過去。 不管怎樣,如果你准備直接使用Configuration文件,你就得仔細地了解一下它到底由什麼內容構成。Configuration文件中的大多數選項都是無需定製的,不過了解一下它們的用處是有好處的。 Configuration文件的前面是關於本文件的一個簡短說明。下面摘錄了這部分內容並給出其譯文: # There are 5 types of lines here: 這里共有5種類型的代碼行: # &single;#&single; comments, distinguished by having a &single;#&single; as the first non-blank character 「#」注釋,以第一個非空字元為「#」區別 # # Makefile options, such as CC=gcc, etc... Make文件選項,例如 CC=gcc,等等... # # Rules, distinguished by having "Rule" at the front. These are used to # control Configure&single;s behavior as far as how to create Makefile. 規則,以前面的「Rule」區別,用於控制Configure的行為以至 如何創建Make文件 # # Mole selection lines, distinguished by having &single;AddMole&single; at the front. # These list the configured moles, in priority order (highest priority # last). They&single;re down at the bottom. 模塊選擇行,以前面的「AddMole」區別。這些行以優先順序為序列出 了已經配製的模塊(高優先順序的在後面)。模塊選擇在文件最後進行。 # # Optional mole selection lines, distinguished by having `%Mole&single; # at the front. These specify a mole that is to be compiled in (but # not enabled). The AddMole directive can be used to enable such a # mole. By default no such moles are defined. 可選模塊選擇行,以前面的「%Mole」區別。這些行指定了必須 編譯的模塊(但不啟用)。AddMole指令可以啟用這種模塊。默 認不定義這種模塊。 大多數用戶只需修改模塊選擇行,其他內容只適合於深入了解其含義的用戶進行修改。在文件的最後我們可以發現許多如下形式的行: AddMole moles/standard/mod_cgi.o 它表示本次編譯Apache應啟用指定的模塊(這里是mod_cgi模塊)。我們可以用注釋掉相應行的方法來刪除特定的模塊;反之,如果取消已注釋行的注釋將啟用該模塊。 我們可以通過SharedMole指令(而不是AddMole)將模塊編譯成DSO(共享對象,shared object): SharedMole moles/standard/mod_vhost_alias.so 注意在編譯DSO時必須啟用mod_so模塊。 用configure生成Configuration.apaci文件,然後檢查其改動之處是一種很好的學習方法。 一旦在Configuration文件中完成了所有必須的改動,只需運行./Configure即可開始編譯過程。 三、使用哪種方法好? 顯然,使用configure和使用Configure都有著各自強硬的支持者,但可以相信每一種觀點都有其派別和歷史的原因。 我們建議兩種方法都用。用configure生成Configuration文件,閱讀這些文件了解其作用,然後保存其中的部分文件供以後在Configure命令中使用。 如果你打算只進行默認安裝,而且從來沒有想到過要改變任何一個選項,那麼使用哪一種方法進行配製就無關緊要了
5. configure命令只指定host能進行交叉編譯嗎
可以,'
--build=BUILD'
指定軟體包安裝的系統平台.如果沒有指定,默認值將是'--host'選項的值. 。
'--host=HOST'
指定軟體運行的系統平台.如果沒有指定,將會運行`config.guess'來檢測.
'--target=GARGET'
指定軟體面向(target to)的系統平台.這主要在程序語言工具如編譯器和匯編器上下文中起作用.如果沒有指定,默認將使用'--host'選項的值.
6. linux, configure --prefix=/有什麼用
「linux, configure --prefix=/」的作用是:編譯的時候用來指定程序存放路徑 。
1、不指定prefix,可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc。其它的資源文件放在/usr /local/share。
2、指定prefix,直接刪掉一個文件夾就夠了。
(6)configure編譯參數擴展閱讀:
Configure是一個可執行腳本,它有很多選項,在待安裝的源碼路徑下使用命令./configure–help輸出詳細的選項列表。
其中,prefix選項是配置安裝的路徑,如果不配置該選項,安裝後可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr/local/share,比較凌亂。
如果配置prefix,如:
./configure --prefix=/usr/local/test可以把所有資源文件放在/usr/local/test的路徑中,不會雜亂。
參考資料:Linux系統下Configure命令參數解釋說明-網路