【2017年整理】Linux编译中Configure参数选项详解

上传人:爱****1 文档编号:990488 上传时间:2017-05-24 格式:DOC 页数:7 大小:45KB
返回 下载 相关 举报
【2017年整理】Linux编译中Configure参数选项详解_第1页
第1页 / 共7页
【2017年整理】Linux编译中Configure参数选项详解_第2页
第2页 / 共7页
【2017年整理】Linux编译中Configure参数选项详解_第3页
第3页 / 共7页
【2017年整理】Linux编译中Configure参数选项详解_第4页
第4页 / 共7页
【2017年整理】Linux编译中Configure参数选项详解_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《【2017年整理】Linux编译中Configure参数选项详解》由会员分享,可在线阅读,更多相关《【2017年整理】Linux编译中Configure参数选项详解(7页珍藏版)》请在金锄头文库上搜索。

1、Configure 参数选项详解 Linux 环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其宗,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure 脚本配置工具就是基础之一,它是 autoconf 的工具的基本应用。与一些技巧相比, Configure 显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。configure 脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上 -help 选项

2、执行configure 脚本可以看到可用的所有选项 . 尽管许多选项是很少用到的 ,但是当你为了特殊的需求而 configure 一个包时 , 知道他们的存在是很有益处的 . 下面对每一个选项进行简略的介绍 :-cache-file=FILEconfigure 会在你的系统上测试存在的特性 ( 或者 bug!). 为了加速随后进行的配置 , 测试的结果会存储在一个 cachefile 里 . 当 configure 一个每个子树里都有 configure 脚本的复杂的源码树时 , 一个很好的 cache file的存在会有很大帮助-help输出帮助信息 . 即使是有经验的用户也偶尔需要使用使用

3、 -help 选项 ,因为一个复杂的项目会包含附加的选项 . 例如 ,GCC 包里的 configure 脚本就包含了允许你控制是否生成和在 GCC 中使用 GNU 汇编器的选项 .-no-createconfigure 中的一个主要函数会制作输出文件 . 此选项阻止 configure生成这个文件 . 你可以认为这是一种演习(dry run), 尽管缓存 (cache) 仍然被改写了 .-quiet-silent当 configure 进行他的测试时 , 会输出简要的信息来告诉用户正在作什么 .这样作是因为 configure 可能会比较慢, 没有这种输出的话用户将会被扔在一旁疑惑正在发生什

4、么 . 使用这两个选项中的任何一个都会把你扔到一旁 .( 译注 : 这两句话比较有意思 , 原文是这样的 :If there wasno such output, the user would be left wondering what is happening. Byusing this option, you too can be left wondering!)-version打印用来产生 configure 脚本的 Autoconf 的版本号 .-prefix=PREFIX-prefix 是最常用的选项 . 制作出的 Makefile 会查看随此选项传递的参数 , 当一个包在安装时可

5、以彻底的重新安置他的结构独立部分 . 举一个例子 , 当安装一个包 , 例如说 Emacs, 下面的命令将会使 Emacs Lisp file 被安装到/opt/gnu/share:$ ./configure -prefix=/opt/gnu-exec-prefix=EPREFIX与 -prefix 选项类似 , 但是他是用来设置结构倚赖的文件的安装位置 .编译好的 emacs 二进制文件就是这样一个问件 . 如果没有设置这个选项的话 , 默认使用的选项值将被设为和 -prefix 选项值一样 .-bindir=DIR指定二进制文件的安装位置 . 这里的二进制文件定义为可以被用户直接执行的程序

6、 .-sbindir=DIR指定超级二进制文件的安装位置 . 这是一些通常只能由超级用户执行的程序 .-libexecdir=DIR指定可执行支持文件的安装位置 . 与二进制文件相反 , 这些文件从来不直接由用户执行 , 但是可以被上面提到的二进制文件所执行 .-datadir=DIR指定通用数据文件的安装位置 .-sysconfdir=DIR指定在单个机器上使用的只读数据的安装位置 .-sharedstatedir=DIR指定可以在多个机器上共享的可写数据的安装位置 .-localstatedir=DIR指定只能单机使用的可写数据的安装位置 .-libdir=DIR指定库文件的安装位置 .-

7、includedir=DIR指定 C 头文件的安装位置 . 其他语言如 C+ 的头文件也可以使用此选项 .-oldincludedir=DIR指定为除 GCC 外编译器安装的 C 头文件的安装位置 .-infodir=DIR指定 Info 格式文档的安装位置 .Info 是被 GNU 工程所使用的文档格式 .-mandir=DIR指定手册页的安装位置 .-srcdir=DIR这个选项对安装没有作用 . 他会告诉 configure 源码的位置 . 一般来说不用指定此选项 , 因为 configure 脚本一般和源码文件在同一个目录下 .-program-prefix=PREFIX指定将被加到所

8、安装程序的名字上的前缀 . 例如 , 使用 -program-prefix=g 来 configure 一个名为 tar 的程序将会使安装的程序被命名为gtar. 当和其他的安装选项一起使用时 , 这个选项只有当他被Makefile.in 文件使用时才会工作 .-program-suffix=SUFFIX指定将被加到所安装程序的名字上的后缀 .-program-transform-name=PROGRAM这里的 PROGRAM 是一个 sed 脚本 . 当一个程序被安装时 , 他的名字将经过sed -e PROGRAM 来产生安装的名字 .-build=BUILD指定软件包安装的系统平台 .

9、如果没有指定 , 默认值将是 -host 选项的值。-host=HOST指定软件运行的系统平台 . 如果没有指定 , 将会运行 config.guess 来检测 .-target=GARGET指定软件面向 (target to) 的系统平台 . 这主要在程序语言工具如编译器和汇编器上下文中起作用 . 如果没有指定 ,默认将使用 -host 选项的值 .-disable-FEATURE一些软件包可以选择这个选项来提供为大型选项的编译时配置 , 例如使用Kerberos 认证系统或者一个实验性的编译器最优配置 . 如果默认是提供这些特性 , 可以使用 -disable-FEATURE 来禁用它 ,

10、 这里 FEATURE 是特性的名字 .例如 :$ ./configure -disable-gui-enable-FEATURE=ARG相反的 , 一些软件包可能提供了一些默认被禁止的特性 , 可以使用 -enable-FEATURE 来起用它 . 这里 FEATURE是特性的名字 . 一个特性可能会接受一个可选的参数 . 例如 :$ ./configure -enable-buffers=128-enable-FEATURE=no 与上面提到的 -disable-FEATURE 是同义的 .-with-PACKAGE=ARG在自由软件社区里 , 有使用已有软件包和库的优秀传统 . 当用 c

11、onfigure来配置一个源码树时 , 可以提供其他已经安装的软件包的信息 . 例如 , 倚赖于 Tcl 和 Tk 的 BLT 器件工具包 . 要配置 BLT, 可能需要给 configure提供一些关于我们把 Tcl 和 Tk 装的何处的信息 :$ ./configure -with-tcl=/usr/local -with-tk=/usr/local-with-PACKAGE=no 与下面将提到的 -without-PACKAGE 是同义的 .-without-PACKAGE有时候你可能不想让你的软件包与系统已有的软件包交互 . 例如 , 你可能不想让你的新编译器使用 GNU ld. 通过

12、使用这个选项可以做到这一点 :$ ./configure -without-gnu-ld-x-includes=DIR这个选项是 -with-PACKAGE 选项的一个特例 . 在 Autoconf 最初被开发出来时 , 流行使用 configure 来作为 Imake 的一个变通方法来制作运行于 X的软件 .-x-includes 选项提供了向 configure 脚本指明包含 X11 头文件的目录的方法 .-x-libraries=DIR 类似的 ,-x-libraries 选项提供了向 configure 脚本指明包含 X11 库的目录的方法 .在源码树中运行configure 是不必要

13、的同时也是不好的 . 一个由 configure 产生的良好的 Makefile 可以构筑源码属于另一棵树的软件包 . 在一个独立于源码的树中构筑派生的文件的好处是很明显的 : 派生的文件 , 如目标文件 , 会凌乱的散布于源码树 . 这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难 . 建议使用三棵树 :一棵源码树 (source tree), 一棵构筑树 (buildtree), 一棵安装树 (install tree). 这里有一个很接近的例子 , 是使用这种方法来构筑 GNU malloc 包 :$ gtar zxf mmalloc-1.0.tar.gz$ mkdi

14、r build & cd build$ ./mmalloc-1.0/configurecreating cache ./config.cachechecking for gcc. gccchecking whether the C compiler (gcc ) works. yeschecking whether the C compiler (gcc ) is a cross-compiler. nochecking whether we are using GNU C. yeschecking whether gcc accepts -g. yeschecking for a BSD c

15、ompatible install. /usr/bin/install -cchecking host system type. i586-pc-linux-gnuchecking build system type. i586-pc-linux-gnuchecking for ar. archecking for ranlib. ranlibchecking how to run the C preprocessor. gcc -Echecking for unistd.h. yeschecking for getpagesize. yeschecking for working mmap. yeschecking for limits.h. yes 。 checking for stddef.h. yesupdating cache ./config.cachecreating ./config.status这样这棵构筑树就被配置了 , 下面可以继续构筑和安装这个包到默认的位置 /usr/local:$ make all & make installps: 交叉编译时, Make 一般用到的环境变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号