zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    撩课-Web大前端每天5道面试题-Day15
    撩课-Web大前端每天5道面试题-Day14
    撩课-Java每天5道面试题第26天
    撩课-Java每天5道面试题第25天
    撩课-Web大前端每天5道面试题-Day13
    撩课-Java每天5道面试题第24天
    撩课-每天刷Web面试题(前10天汇总)-Day12
    撩课-Java每天5道面试题第23天
    撩课-Web大前端每天5道面试题-Day11
    java设计模式-策略模式
  • 原文地址:https://www.cnblogs.com/whwywzhj/p/9790034.html
Copyright © 2011-2022 走看看