configure配置安裝詳解_第1頁(yè)
configure配置安裝詳解_第2頁(yè)
configure配置安裝詳解_第3頁(yè)
configure配置安裝詳解_第4頁(yè)
configure配置安裝詳解_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

configure配置安裝詳解

歡迎訪問(wèn)我的博客:http://blog.csdn.net/u010977122/article/details/52959098

****************************************************************************

由于最近項(xiàng)目需要在HMI層生成二維碼,所以去網(wǎng)上找了第三方開源庫(kù)??墒窍螺d下來(lái)里面

都是源碼,沒(méi)有動(dòng)態(tài)庫(kù)或者靜態(tài)庫(kù),所以就需要自己去編譯生成.源碼庫(kù)中只有一個(gè)

configure的可運(yùn)行得配置腳本,之前用過(guò),沒(méi)有詳細(xì)了解,今天去網(wǎng)上查閱資料,以下是

整理的一些心得筆記。

首先讓我們先來(lái)了解一下configure這個(gè)文件的作用。

Linux環(huán)境下的軟件安裝,并不是一件容易的事情;如果通過(guò)源代碼編譯后再安裝,當(dāng)然事

情就更為復(fù)雜一些;現(xiàn)在安裝各種軟件的教程都非常普遍:但萬(wàn)變不離其中,對(duì)基礎(chǔ)知識(shí)的

扎實(shí)掌握,安裝各種軟件的問(wèn)題就迎刃而解了。Configure腳本配置工具就是基礎(chǔ)之一,它

是autoconf的工具的基本應(yīng)用。

configure它是個(gè)shell腳本,主要用于編譯安裝源代碼庫(kù)和軟件。./configure是源代碼

安裝的第一步,主要的作用是對(duì)即將安裝的軟件進(jìn)行配置,比如加上-with、-enable.

-without,-disable等等參數(shù)對(duì)編譯加以控制,檢查當(dāng)前的環(huán)境是否滿足要安裝軟件的

依賴關(guān)系,比如它會(huì)檢測(cè)你是不是有CC或GCC,并不是需要CC或GCC。生成makefile文件,

以便你可以用make和makeinstall來(lái)編譯和安裝程序,最后運(yùn)行makeclean刪除一些臨

時(shí)文件。

首先我們可以使用./configure-help就可以查看到所有的配置選項(xiàng)。下面我們對(duì)一些

重要的常見的進(jìn)行介紹:

Defaultsfortheoptionsarespecifiedinbrackets.

Configuration:

-h,-helpdisplaythishelpandexit

-help=shortdisplayoptionsspecifictothispackage

一help=recursivedisplaytheshorthelpofalltheincluded

packages

-V,-versiondisplayversioninformationandexit

-q,-quiet,—silentdonotprintchecking…'messages

-cache-file=FILEcachetestresultsinFILE[disabled]

-C,-config-cachealiasfor-cache-fi1e=config.cache,

-n,-no-createdonotcreateoutputfiles

-srcdir=D!RfindthesourcesinDIR[configurediror'..,]

Installationdirectories:

-prefix=PREFIXinstallarchitecture-]ndependentfilesin

PREFIX

[/usr/local]

-exec-prefix=EPREFIXinstallarchitecture-dependentfilesin

EPREFIX

[PREFIX]

Bydefault,makeinstalTwillinstallallthefilesin

'/usr/local/bin,,'/usr/local/lib,etc.Youcanspecify

aninstallationprefixotherthan,/usr/local'using'-prefix',

forinstance'-prefix=$HOME,.

Forbettercontrol,usetheoptionsbelow.

Finetuningoftheinstallationdirectories:

-bindir二DIRuserexecutables[EPREFIX/bin]

-sbindir=D!Rsystemadminexecutables[EPREFIX/sbin]

-libexecdir=DIRprogramexecutables[EPREFIX/1ibexec]

一sysconfdir=DIRread-onlysingle-machinedata[PREFIX/etc]

--sharedstatedir=DIRmodifiablearchitecture-independentdata

[PREFIX/com]

-localstatedir=DIRmodifiablesingle-machinedata[PREFIX/var]

—libdir=DIRobjectcodelibraries[EPREFIX/1ib]

--includedir=DIRCheaderfiles[PREFIX/include]

——oldincludedir=DIRCheaderfilesfornon-gcc[/usr/include]

一一datarootdir=DTRread-onlyarch.-ndependentdataroot

[PREFIX/share]

-datadir=DlRread-onlyarchitecture-independentdata

[DATAROOTDIR]

一infodir二DIRinfodocumentation[DATAROOTDIR/info]

-localedir=DTRlocale-dependentdata[DATAROOTDTR/1ocae]

-mandir=DIRmandocumentation[DATAROOTDIR/man]

-docdir=D!Rdocumentationroot

[DATAROOTDIR/doc/qrcncodc]

-htmldir=DIRhtmldocumentation[DOCDIR]

—dvidir=DIRdvidocumentation[DOCDIR]

-pdfdir=DIRpdfdocumentation[DOCDIRJ

-psdir=DIRpsdocumentation[DOCDIR]

Programnames:

-program-prefix=PREFIXprependPREFIXtoinstalled

programnames

-program-suffix=SUFFIXappendSUFFIXtoinstalledprogram

names

一program-1ransform-name=PROGRAMrunsedPROGRAMoninstalled

programnames

Systemtypes:

-build=BUILDconfigureforbuildingonBUILD[guessed]

-host=HOSTcross-compiletobuildprogramstorunonHOS^

[BUILD]

-target=TARGETconfigureforbuildingcompilersforTARGET[HOST]

OptionalFeatures:

--disable-option-checkingignoreunrecognized-enable/―with

options

-disable-FEATUREdonotincludeFEATURE(sameas

一enable-FEATURE二no)

-enable-FEATURE[二ARG]includeFEATURE[ARG=yes]

-enable-silent-ruleslessverbosebuildoutput(undo:"makeV=l")

一disable-silent-rulesverbosebuildoutput(undo:"makeV二0")

-enable-static[=PKGS]buildstaticlibraries[default=no]

-enable-dependency-tracking

donotrejectslowdependencyextractors

-disable-dependency-tracking

speedsupone-tinebuild

-enable-shared[=PKGS]buildsharedlibraries[default=yes]

-enable-fast-install[=PKGS]

optimizeforfastinstallation[default=yes]

-disable-libtool-lockavoidlocking(mightbreakparallelbuilds)

一一enable-thread-safetymakethe1ibrarythread-safe,[default=yes]

-disable-sdltestDonottrytocompileandrunatestSDLprogram

-disable-rpathdonothardcoderuntimelibrarypaths

-enable-gprofgenerateextracodetowriteprofile

information

suitableforgprof[default=no]

-enable-gcovgenerateextracodetowritecoverage

information

suitableforgcov[default=no]

一一enable-mudflapgenerateextracodetocheckmemoryleaks

[default=no]

OptionalPackages:

一with-PACKAGE[二ARG]usePACKAGE[ARG=yes]

--without-PACKAGEdonotusePACKAGE(sameas-with-PACKAGE=no)

-with-pic[=PKGS]trytouseonlyPlC/non-PICobjects

[default=use

both]

-with-gnu-ldassumetheCcompilerusesGNUId[default=no]

-with-sysroot=DTRSearchfordependentlibrarieswithinDTR

(orthecompiler'ssysrootifnotspecified).

-with-toolsbuildutilitytools[default=yes]

-with-testsbuildtests[default=no]

一with-sdl-prefix=PFXPrefixwhereSDLisinstalled(optional;

一with-sdl-exec-prefix=PFXExecprefixwhereSDLisinstalled

(optional)

-with-gnu-ldassumetheCcompilerusesGNUId[default=no]

-with-libiconv-prefix[=DIR]searchforlibiconvinDIR/includeand

DIR/lib

-without-1ibiconv-prefixdon,tsearchfor1ibiconvinincludedir

andlibdir

Someinfluentialenvironmentvariables:

CCCcompilercommand

CFLAGSCcompilerflags

LDFLAGSlinkerflags,e.g.-L<libdir>ifyouhavelibrariesina

nonstandarddirectory<libdir>

LIBSlibrariestopasstothelinker,e.g.-Klibrary>

CPPFLAGS(Objective)C/C++preprocessorflags,e.g.-Kincludedir>

youh£veheadersinanonstandarddirectory<includedir>

CPPCpreprocessor

PKG_CONFIGpathtopkg-configutility

PKGCONFIGPATH

directoriestoaddtopkg-config*ssearchpath

PKG_CONFIG_LIBDIR

pathoverridingpkg-config,sbuilt-insearchpath

pngCFLAGSCcompilerflagsforpng,overridingpkg-config

pngLTBSlinkerflagsforpng,overridingpkg-config

Usethesevariablestooverridethechoicesmadebyconfigure,ortohelp

ittofindlibrariesandprogramswithnonstandardnames/locations.

1、—host=HOST

指定軟件運(yùn)行的系統(tǒng)平臺(tái).如果沒(méi)有指定,將會(huì)運(yùn)行'config,guess'來(lái)檢測(cè).一hosl指定的

是交叉編譯工具鏈的前綴

2、—build=BUILD

指定軟件包安裝的系統(tǒng)平臺(tái),如當(dāng)前我們是在intel的pontium機(jī)器中編譯該系統(tǒng),那么我

們的一build就可能

是i686-pc-linux-gnu,.如果沒(méi)有指定,默認(rèn)值將是‘一host'選項(xiàng)的值.

3、一target二GARGET

指定軟件面向(targetto)的系統(tǒng)平臺(tái).這主要在程序語(yǔ)言工具如編譯器和匯編器上下文中

起作用.如果沒(méi)有指定,默認(rèn)將使用'-host'選項(xiàng)的值.

一般而言,我們只要指定一host就可以了,在一build和--host不同的時(shí)候就被配置文件

認(rèn)定為進(jìn)行交叉編譯,否則就是表示本地編譯。

從這三個(gè)參數(shù)的含義來(lái)看,說(shuō)明其處理的目標(biāo)只有在不同平臺(tái)下表現(xiàn)為不同的時(shí)候才有作用,

而這些文件通常都跟FI標(biāo)平臺(tái)的指令系統(tǒng)直接或間接關(guān):比如可執(zhí)行文件,對(duì)于不同平臺(tái)下

使用的可執(zhí)行文件的編碼可以是完全不同的,因此必須使用對(duì)應(yīng)能處理該編碼的程序才能

正確處理,而如果錯(cuò)誤的使用則可能導(dǎo)致程序錯(cuò)誤或者破壞文件,對(duì)于這樣要處理不同平臺(tái)

下會(huì)出現(xiàn)不同編碼的軟件,我們就應(yīng)當(dāng)對(duì)它指定目標(biāo)平臺(tái),以免另其錯(cuò)誤處理;而對(duì)于文

本文件,對(duì)于不同的平臺(tái)同樣的內(nèi)容表達(dá)的含義都是相同的,因此我們不需要專門針對(duì)平

臺(tái)來(lái)處理,這樣的軟件我們就可以不必對(duì)它指定需要處理的平臺(tái)了。

在交叉編譯之后,可以用file***指令,查看生成的文件的類型,如果不對(duì)的話,就可以

去查看config,log文件,看看有沒(méi)有找到相應(yīng)的編譯工具鏈。

4、-enable-FEATURE[=ARG]

相反的,一些軟件包可能提供了一些默認(rèn)被禁止的特性,訶以使用'一enable-FEATURE'來(lái)起

用它.這里'FEATURE'是特性的名字.一個(gè)特性可能會(huì)接受一個(gè)可選的參數(shù).例如:

$./configure-enab1e-buffers=128

5、'-enable-FEATURE二no'與上面提到的'—disable-FEATURE*是同義的.

一enable-static:生成靜態(tài)鏈接庫(kù)

-enable-shared:生成前態(tài)鏈接庫(kù)

這兩個(gè)用來(lái)選擇生成是靜態(tài)庫(kù)還是動(dòng)態(tài)庫(kù),但是我配置了無(wú)效,具體我也不知道為什么,希

望有了解的不吝賜教。

6、’--with-PACKAGE[=ARG]'

在自由軟件社區(qū)里,有使用己有軟件包和庫(kù)的優(yōu)秀傳統(tǒng).當(dāng)用'configure'來(lái)配置一個(gè)源碼樹

時(shí),可以提供其他已經(jīng)安裝的軟件包的信息.例如,倚賴于Tel和Tk的BLT器件工具包.要配

置BLT,可能需要給'configure'提供一些關(guān)于我們把Tel和Tk裝的何處的信息:

$./configure-with-tcl=/usr/local-with-tk=/usr/local

'-with-PACKAGE二no'

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論