Binutils与GCC配置选项简介(2)

来源:chinaunix 作者:coolcoolrain
  
用 __cxa_atexit 代替 atexit 来登记 C++ 对象的本地静态和全局析构函数以符合标准对析构函数的处理规定,相当于在将来调用 gcc 时默认使用 -fuse-cxa-exit 选项。它还会影响到 C++ ABI ,因此生成的 C++ 共享库在其他的 Linux 发行版上也能使用。该选项仅在使用 Glibc 的情况下有效。
--enable-target-optspace
指定目标库应当应当优化尺寸而不是速度。仅在 m32r 平台上是默认值。
--disable-cpp
禁止安装 cpp[C预处理程序]。
--with-cpp-install-dir=dirname
指定 cpp 程序的安装目录为 prefix/dirname
--enable-initfini-array
为构造函数和析构函数强制使用 .init_array 和 .fini_array (而不是 .init 和 .fini) 节。一般不需要指定该选项,因为 configure 会自动检测。
--enable-maintainer-mode
要求从源代码重新生成 gcc.pot 文件。该文件是主消息分类,包括编译程序产生的所有错误和警告的诊断消息,普通用户不需要了解这些信息。仅在你改动过源代码的情况下才有可能需要使用这个选项。要使该选项正常工作,需要完整的源代码树个gettext的最新版本。
--disable-bootstrap
--enable-bootstrap
是否允许 bootstrap 。非交叉编译的情况下,enable是默认值;交叉编译的情况下,disable是默认值,但是你可以强制指定。
--enable-version-specific-runtime-libs
将运行时库安装在编译器特定的子目录 (libdir/gcc)中。另外,'libstdc++'的包含文件将被安装在 libdir 中(除非指定了 --with-gxx-include-dir)。如果你打算同时安装几个不同版本的 GCC ,这个选项就很有用处了。当前,'libgfortran', 'libjava', 'libmudflap', 'libstdc++', 'libobjc'都支持该选项。
--enable-languages=lang1,lang2,...
指定只安装指定的语言支持,可以使用的语言是:ada, c, c++, fortran, java, objc, obj-c++, treelang,若不指定该选项则安默认装所有可用的语言支持。
--disable-libada
不编译 GNAT 使用的运行时库和工具(Ada相关)。
--disable-libssp
不编译保护缓冲区溢出的运行时库。
--disable-libmudflap
不编译边界检查函数的运行时库。
--disable-libgomp
不编译 GOMP 使用的运行时库和工具。
--with-dwarf2
指定编译程序产生的调试信息默认为DWARF2格式。
--enable-targets=all
--enable-targets=target_list
在一些混合型的目标平台上(比如 x86_64-linux)会创建混合型的编译器(既能够生成64位代码也能生成32位代码)。但是如果在此指定"x86-linux"将只能生成32位代码。通常当你希望在x86_64机器上默认生成32位代码的时候才使用该选项。
--enable-secureplt
指定将来调用 gcc 时默认使用 -msecure-plt 选项,仅对 powerpc-linux 平台有效。
--nfp
指定机器没有浮点运算单元,仅在 m68k-sun-sunosn 平台上有效。
--disable-werror
禁止在编译时显示错误信息。
--enable-checking=list
该选项会产生执行编译程序内部检查的代码。这种检查会产生诊断输出并会增加编译时间,并且仅在使用GCC作为编译器的时候才有效,但是对输出结果没有影响。对从CVS下载的版本默认值是"yes"(=assert,misc, tree,gc,rtlflag,runtime),对于正式发布的版本则是"release"(=assert,runtime)。可以从 "assert,fold,gc,misc,rtlflag,runtime,tree,gcac,rtl"中选择你想要检查的项目(逗号隔开的列表),需要注意的是最后两项检查非常耗时。使用 --disable-checking 完全禁止这种检查会增加未能检测内部错误的风险。
--enable-coverage[=opt|noopt]
在编译器每次编译时收集自身的 coverage 信息。这个仅用于内部测试的目的,并且仅在使用GCC编译的时候才有效。参数控制着是否在编译编译器时使用优化(默认为"noopt")。在需要进行 coverage 分析的时候使用"noopt",在需要进行性能分析的时候使用"opt"。
--enable-gather-detailed-mem-stats
收集详细的内存使用信息,将来在调用 gcc 时如果使用了 -fmem-report 选项就可以打印这些信息。
--with-gc[=page|zone]
指定编译过程中使用的垃圾回收方案(默认为"page")。
--disable-nls
禁用本地语言支持(它允许按照非英语的本地语言显示警告和错误消息)。
--with-included-gettext
如果启用了NLS,该选项指出构建进程在使用系统安装的版本以前,优先使用自己的gettext副本。
--with-catgets
如果启用了NLS,同时主机又没有安装settext(但有较低级的catgets接口),默认GCC的编译进程会使用其自带的gettext库。但是该选项将会强制编译进程使用主机的catgets。
--with-libiconv-prefix=dir
在 dir/include 目录中搜索libiconv头文件,在 dir/lib 目录中搜索libiconv库文件。
--enable-obsolete
允许为废弃的系统进行配置。被标记为"废弃的"系统将不会在下一个主要的版本中支持。
--enable-decimal-float
--disable-decimal-float
启用(或禁用)C十进制浮点扩展。在 PowerPC GNU/Linux 系统默认启用,在其他系统上默认禁用。
--with-long-double-128
指定 long double 类型为 128-bit 。基于 Glibc 2.4 或以上版本编译时默认为 128-bit ,其他情况默认为 64-bit 。
--with-gmp=pathname
--with-mpfr=pathname
如果你没有将GMP(GNU Multiple Precision)库和MPFR库安装在标准位置,你可以使用这些选项指定他们的位置。

以下选项仅用于交叉编译环境

--with-sysroot=dir
将 dir 看作目标系统的根目录。目标系统的头文件、库文件、运行时对象都将被限定在其中。
--with-newlib
将'newlib'指定为目标系统的C库进行使用。这将导致 libgcc.a 中的 __eprintf 被忽略,因为它被假定为由'newlib'提供。
--with-build-time-tools=dir
指定编译GCC自身时目标系统的工具链(汇编器,连接器,等等)目录。该目录中必须包含 ar, as, ld, nm, ranlib, strip 程序,有时还需要包含 objdump 程序。

时间:2010-01-13 16:42 来源:chinaunix 作者:coolcoolrain 原文链接

好文,顶一下
(6)
85.7%
文章真差,踩一下
(1)
14.3%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
论坛精华
一周热点
无觅相关文章插件,快速提升流量