还剩5页未读,继续阅读
文本内容:
配置安装详解configurexL*KL**sL**1*;L*vt*K!JK!xt*vL*v!xl*xl**A**A*KL*KL*K!^Tx#Tx^TszTxxrxXTXx7xzx*TX*rxXTXzT^ZTSZTXxTxzp*xp*X7XZTXzT%ZjszT%xTxzTxZTXZTXZTXxTszTszp*zp%zp%*Tx#TszTxzT%zTs✓vxTsTx#TXzTsxTxz7%zTxzTsZTSZTSZT%ZTSZTXZjSXTXXTXXTSxT*Z|X✓Tx✓TxXTXZT%ZTSZTSZT%✓TxTxxTxTxXJXXgXXTSXTXXTSTxZ7xZ7x欢迎访问我的博客.csdn.net/u010977122/article/details/52959098slzslz%Izslz%lzslz slz^lzslzxlz slzslzslzsl^%lzslz^Z xlz^1*slzslz xlz*^Z*^ZxixxTxzixxlxT*Jxxrxxrx xlx*TxTxTx^rx^TX^TX^TXXI^*TX*TXT TXZT*T*XT^XT^^TXXTXTXXTSXTSXT^XTXXIXXTXTXXT^*TXXTX^TXXI^XT#TH ZTXjxxr*xr^xrxxTxTx7#rx#rx xTxxrvxTxxlxx7^^TX^TXXT^由于最近项目需要在HMI层生成二维码,所以去网上找了第三方开源库可是下载下来里面都是源码,没有动态库或者静态库,所以就需要自己去编译生成源码库中只有一个configure的可运行得配置脚本,之前用过,没有详细了解,今天去网上查阅资料,以下是整理的一些心得笔记首先让我们先来了解一下configure这个文件的作用Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后再安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用configure它是个shell脚本,主要用于编译安装源代码库和软件./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,比如加上-with、-enable、-without,-disable等等参数对编译加以控制,检查当前的环境是否满足要安装软件的依赖关系,比如它会检测你是不是有CC或GCC,并不是需要CC或GCC生成makefile文件,以便你可以用make和make install来编译和安装程序,最后运行make clean删除一些临时文件首先我们可以使用./configure-help就可以查看到所有的配置选项下面我们对一些重要的常见的进行介绍Defaults forthe optionsare specifiedin brackets.Configuration:-h,--help displaythis helpand exithelp=short displayoptions specificto thispackage一一display theshort helpof all the includedhelp=recursive一一packagesdisplay versioninformation andexit do not print-V,version一一checkingmessages cachetest resultsin FILE・・・-q,--quiet,silent一-[disabled]alias for--cache-file=config.cache do not--cache-file=FILEcreate outputfiles-C,--config-cachefind thesources inDIR[configure diror,]・-n,no-create一一——srcdir=DIRInstallation directories:prefix=PREFIX installarchitecture-independent files in一PREFIX[/usr/local]--exec-prefix=EPREFIX installarchitecture-dependent filesinEPREFIX[PREFIX]By default,make instalTwill installallthefilesin/usr/local/bin,,/usr/local/lib,etc.You canspecifyan installationprefix otherthan/usr/local using--prefix’,for instance,-一prefix=$II0ME
5.For bettercontrol,use theoptions below.Fine tuningof theinstallation directories:user executables[EPREFIX/bin]--bindir=DIRsystem adminexecutables[EPREFIX/sbin]programsbindir=DIR一executables[EPREFIX/1ibexec]read-only single-machine--libexecdir=DIRdata[PREFIX/etc]modifiable architecture-independentsysconfdir=DIR一data--sharedstatedir=DIR[PREFIX/com]modifiable single-machine data[PREFIX/var]object codelocalstatedir=DIR一一libraries[EPREFIX/lib]—libdir=DIRC headerfiles[PREFIX/include]--includedir=DIRC headerfiles fornon-gcc[/usr/include]read-only arch,-independent dataroot read-only——datarootdir=DIRarchitecture-independent data[PREFIX/share]datadir=DIR一info documentation[DATAROOTDIR/info]locale-dependent data[DATAROOTDIR][DATAROOTDIR/locale]man documentation[DATAROOTDIR/man]documentation rootinfodir=DIR一--localedir=DIRdisable-silent-rules verbosebuild outputundo:make一-mandir=DIR V=0〃[DATAROOTDIR/doc/qrencode_html documentation[DOCDIR]dvi--htmldir=DIRdocumentation[DOCDIR]pdfdvidir=DIR一--pdfdir=DIR documentation[DOCDIR]ps一psdir=DIR documentation[DOCDIR]Program names:--program-prefix=PREFIX prependPREFIX toinstalledprogram names--program-stiffix=SUFFIX appendSUFFIX toinstalled programnamesprogram—transform-name=PROGRAM runsed PROGRAMon installed一一program namesSystemtypes:configure for building onBUILD[guessed]cross-compilebuild BUILD一二to buildprograms torun onHOSThost=HOST一[BUILD]target=TARGET configureforbuildingcompilers forTARGET[HOST]一Optional Features:disable-option-checking ignoreunrecognized enable/with一一一一一一options—disable-FEATURE do not includeFEATURE same as--enab1e-FEATURE=noinclude FEATURE[ARG=yes]—enab1e-FEATURE[=ARG]less verbosebuild outputundo:make V=1〃——enable-silent-rulesenable-static PKGS]build staticlibraries[default=no]一一[二enable-dependency-tracking一donotreject slowdependency extractors——disable-dependency-trackingspeeds upone-time buildenable-shared[=PKGS]build sharedlibraries[default=yes]一一一enable-fast-install[=PKGS]optimize forfast installation[default=yes]avoid lockingmight breakparallelbuilds makethe librarythread-safe.[default=yes]Do nottry tocompile andrun a--disable-1ibtool-lock testSDL programdonothardcode runtimelibrary paths一enable-thread-safety generate extra code to writeprofile一disable-sdltestdisable-rpath suitablefor gprof[default=no]一enable-gprof generateextra codeto writecoverage-一informationsuitable forgcov[default=no]enable-gcov informationgenerateextracodetocheck memoryleaks[default no]一二——enable-mudflapuse PACKAGE[ARG=yes]donotuse PACKAGEsameas-with-PACKAGE notry touse二only PIC/non-PIC objectsOptionalPackages:一both]with-PACKAGE[=ARG]一assume the C compiler uses GNU Id[default=no]without-PACKAGEor thecompiler,s sysrootif not--with-pic[=PKGS]with-tools specified.build utilitytools[default=yes]build[default=use一一tests[default=no]——with-tests——with-gnuTd with-sdl-prefix=PFX Prefixwhere SDL is一一——with-sysroot=DIR Searchfor dependentlibraries withinDIRinstalled optionalwith-sdl-exec-prefix=PFX Execprefix whereSDLisinstalled optional一with-gnu-ld assumetheC compilerusesGNU Id[default=no]一--with-libiconv-prefix[=DIR]search for libiconv inDIR/include andDIR/lib--without-libiconv-prefix don,t searchforlibiconvin includedirandlibdirSome influentialenvironment variables:CC C compiler commandCFLAGSCcompilerflagsLDFLAGS linkerflags,e.g.-Llib dirif youhave librariesin anonstandard directory libdirLIBS librariesto passto thelinker,e.g.-llibraryCPPFLAGS ObjectiveC/C++preprocessor flags,e.g.-Kinclude diryouhave headersin anonstandarddirectoryinclude dirCPPC preprocessorPKGCONFIG pathto pkg-config utilityPKGCONFIG PATHdirectoriesto addto pkg-config,s searchpath PKG_CONFIG_LIBDIRpath overriding pkg-configJ sbuilt-in searchpath pngCFLAGSC compilerflags for png,overridingpkg-config png_LIBS linkerflagsforpng,overridingpkg-configUse thesevariables tooverride thechoices madeby configureor tohelp itto findlibrariesand programswith nonstandardnames/locations.
1、—host=H0ST指定软件运行的系统平台.如果没有指定,将会运行,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=
1285、enable-FEATURE=no,与上面提到的—disable-FEATURE,是同义的.--enable-static生成静态链接库--enable-shared生成动态链接库这两个用来选择生成是静态库还是动态库,但是我配置了无效,具体我也不知道为什么,希望有了解的不吝赐教
6、-with-PACKAGE[=ARG]在自由软件社区里,有使用已有软件包和库的优秀传统.当用‘configure来配置一个源码树时,可以提供其他已经安装的软件包的信息.例如,倚赖于Tel和Tk的BLT器件工具包.要配置BLT,可能需要给configure提供一些关于我们把Tel和Tk装的何处的信息$./configure-with-tcl=/usr/local-with-tk=/usr/local—with-PACKAGE=no与下面将提到的-without-PACKAGE是同义的.
7、-without-PACKAGE有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNUId.通过使用这个选项可以做到这一点$./configure-without-gnu-ld
8、也可以配置它们的环境变量,如span style=z,font-family:SimSun;font-size:14px;,z CCC compilercommandCFLAGSCcompilerflags/span
9、一prefix=PREFIX,-prefix,是最常用的选项.制作出的Makefile会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分.举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lispfile被安装到〃/opt/gnu/share”:$./configure-prefix=/opt/gnu
10、-bindir=DIR指定二进制文件的安装位置.这里的二进制文件定义为可以被用户直接执行的程序.11-sbindir=DIR指定超级二进制文件的安装位置.这是一些通常只能由超级用户执行的程序.
12、-libdir=DIR指定库文件的安装位置.
13、--includedir-DIR5指定C头文件的安装位置.其他语言如C++的头文件也可以使用此选项.更为详细的参数的介绍请参考.csdn.net/winiamwang2013/article/details/
8529954.org.cn/blog/more.aspname=lhworkid=22496在此之后,就会自动生成Makefile文件,如果要修改编译器环境等,可以这个时候修改生成的Makefile文件,也可以在/configure之前,先source下交叉编译需要的环境变量如果编译的是库文件,就可以把库文件和相应的头文件包含到工程中就可以使用了。