linux编译中configure参数选项详解

合集下载

configure的用法

configure的用法

configure的用法
configure是一个常用的命令行工具,用于配置和安装软件。

它通常用于编译和安装开源软件项目,用于生成Makefile并进行编译和安装。

configure的用法与大多数命令行工具相似,你可以在终端中输入configure命令,后跟选项和参数。

常见的选项包括--prefix、--with-xxx、--disable-xxx等,它们可以用于配置安装路径、开启或关闭某些功能等。

一般来说,使用configure进行编译和安装软件的步骤如下:
1. 解压源代码包,并进入该目录;
2. 运行configure命令,并指定需要的选项;
3. 如果configure运行成功,会生成Makefile文件;
4. 运行make命令进行编译;
5. 运行make install命令进行安装。

需要注意的是,在运行configure命令前,我们需要安装一些必要的依赖库和工具,例如编译器、开发库等。

此外,configure命令也可以接受一些特定的参数,例如--help、--version等,用于查看帮助信息和版本号。

总的来说,configure是一个非常实用的命令行工具,可以帮助我们快速配置和安装开源软件项目,提高开发效率和工作效率。

- 1 -。

linux configure写法

linux configure写法

linux configure写法在Linux中,配置脚本通常用于配置和编译软件包。

常见的配置脚本是configure脚本,它使用autoconf和automake工具生成。

一个简单的configure脚本的写法如下:```bash#!/bin/sh# 配置脚本开始# 检查是否安装了必要的工具if ! command -v gcc &> /dev/nullthenecho "编译该软件需要gcc编译器,请先安装gcc。

"exit 1fi# 定义变量prefix=/usr/localbindir=bindatadir=sharemandir=man# 检查参数if [ $# -ne 0 ]thenecho "用法: $0 [prefix]"exit 1fi# 生成Makefile文件aclocal -I m4autoheaderautomake --add-missing --copy --forceautoconf# 配置选项./configure --prefix=$prefix --bindir=$bindir --datadir=$datadir --mandir=$mandir || exit 1# 配置脚本结束```这是一个非常简单的configure脚本,它检查是否已经安装了gcc编译器,并定义了一些变量。

然后,它使用aclocal、autoheader、automake 和autoconf工具生成Makefile文件。

最后,它使用configure脚本进行配置,并指定了一些选项。

rpmbuild configure参数

rpmbuild configure参数

**rpmbuild configure参数**`rpmbuild` 是Linux 下的一个工具,用于构建RPM 软件包。

在使用`rpmbuild` 进行软件包构建时,经常需要对源代码进行配置,这通常是通过调用源代码目录中的`configure` 脚本完成的。

`configure` 脚本支持大量的参数,以便根据不同的系统和需求进行定制。

以下是 `configure` 脚本中常用的一些参数:1. **--prefix=PREFIX**设置安装目录的前缀。

例如,如果设置为`--prefix=/usr/local`,则执行`make install` 时,软件将被安装到 `/usr/local/bin`、`/usr/local/lib` 等目录下。

2. **--with-PACKAGE**启用某个特定的功能或库。

例如,`--with-ssl` 可能会启用 SSL 支持。

3. **--without-PACKAGE**禁用某个特定的功能或库。

与 `--with-PACKAGE` 相反。

4. **--enable-FEATURE**启用某个特定的特性。

这通常用于可选的功能或实验性功能。

5. **--disable-FEATURE**禁用某个特定的特性。

6. **--help**显示帮助信息,列出所有可用的 `configure` 选项。

7. **CFLAGS, CXXFLAGS, LDFLAGS**这些变量用于指定编译器和链接器的标志。

例如,可以设置优化级别、警告级别、包含的目录等。

8. **--host=HOST**指定目标主机的类型。

这对于交叉编译非常有用,例如,为ARM 架构编译软件但在 x86 上运行 `configure`。

9. **--build=BUILD**指定构建主机的类型。

通常不需要设置,除非你知道自己在做什么。

10. **--cache-file=FILE**使用或创建缓存文件,以存储之前运行的配置测试的结果。

configure 参数

configure 参数

configure 参数在计算机领域中,configure是一个常用的命令,它用于配置软件包以便在特定的系统上进行编译和安装。

configure命令通常是由autotools工具链生成的,autotools是一套自动化构建工具,可以帮助开发者将软件包从源代码构建到二进制可执行文件。

configure参数是指在使用configure命令时可以传递给它的选项和参数,这些选项和参数可以影响软件包的编译、安装和运行。

configure参数主要分为三类:通用选项、编译选项和安装选项。

下面将详细介绍每个选项及其作用:1. 通用选项--help:显示帮助信息。

--version:显示软件包版本号。

--prefix=DIR:指定安装目录,默认为/usr/local。

--exec-prefix=DIR:指定可执行文件目录,默认为prefix目录。

--bindir=DIR:指定二进制文件目录,默认为exec-prefix/bin。

--sbindir=DIR:指定系统二进制文件目录,默认为exec-prefix/sbin。

--libdir=DIR:指定库文件目录,默认为prefix/lib。

--includedir=DIR:指定头文件目录,默认为prefix/include。

--datadir=DIR:指定数据文件目录,默认为prefix/share。

2. 编译选项--build=BUILD:指定编译系统类型,默认为当前系统类型。

--host=HOST:指定运行系统类型,默认为当前系统类型。

--target=TARGET:指定目标系统类型,默认为HOST。

--enable-feature:启用某个功能。

--disable-feature:禁用某个功能。

--with-PACKAGE[=ARG]:指定要使用的库或工具包,ARG表示库或工具包的路径。

--without-PACKAGE:禁用某个库或工具包。

3. 安装选项--disable-shared:禁用共享库,只编译静态库。

Linux命令详解(三).configure、make、makeinstall命令

Linux命令详解(三).configure、make、makeinstall命令

Linux命令详解(三).configure、make、makeinstall命令这些都是典型的使⽤GNU的AUTOCONF和AUTOMAKE产⽣的程序的安装步骤⼀、基本信息 1、./configure 是⽤来检测你的安装平台的⽬标特征的。

⽐如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。

2、make 是⽤来编译的,它从Makefile中读取指令,然后编译。

3、make install是⽤来安装的,它也从Makefile中读取指令,安装到指定的位置。

注意:AUTOMAKE和AUTOCONF是⾮常有⽤的⽤来发布C程序的东西。

⼆、详细解释 1、configure命令 这⼀步⼀般⽤来⽣成 Makefile,为下⼀步的编译做准备,你可以通过在 configure 后加上参数来对安装进⾏控制,⽐如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下⾯,执⾏⽂件就会安装在 /usr/bin (⽽不是默认的 /usr/local/bin),资源⽂件就会安装在/usr/share(⽽不是默认的/usr/local/share)。

同时⼀些软件的配置⽂件你可以通过指定 –sys-config= 参数进⾏设定。

有⼀些软件还可以加上–with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。

2、make 这⼀步就是编译,⼤多数的源代码包都经过这⼀步进⾏编译(当然有些perl或python编写的软件需要调⽤perl或python来进⾏编译)。

如果在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后⼀⾏),然后你可以向开发者提交 bugreport(⼀般在 INSTALL ⾥有提交地址),或者你的系统少了⼀些依赖库等,这些需要⾃⼰仔细研究错误代码。

linux sysconfig命令的用法

linux sysconfig命令的用法

linux sysconfig命令的用法Sysconfig是一个在Linux系统中常用的命令行工具,用于配置和管理系统参数。

它提供了许多与系统相关的配置选项,可以用于调整系统的性能、安全性和行为。

本篇文章将详细介绍Sysconfig命令的用法,包括基本语法、选项和参数说明。

一、基本语法sysconfig[选项]参数其中,选项和参数是可选的,具体含义如下:*参数:指定要配置的系统参数,可以是系统服务、网络接口、文件系统等。

二、常用选项和参数说明1.-a:添加配置参数。

2.-d:显示指定服务的详细信息。

3.-f:强制应用配置更改。

4.-m:使用图形界面进行配置。

5.-s:应用配置更改并重启系统。

6.参数:指定要配置的系统服务名称或文件系统路径。

三、用法示例1.配置网络接口参数:sysconfignetworkinginterface[参数]例如:sysconfignetworkinginterface="eth0"ipv4.addresses="192.168.0. 1/24"ipv6.addresses="fe80::1/64"该命令将为eth0接口配置IPv4和IPv6地址设置。

2.显示系统服务的详细信息:sysconfigserviceservice_name例如:sysconfigservicesshd该命令将显示SSH服务的详细信息,包括状态、日志文件等。

3.强制应用配置更改并重启相关服务:sysconfig[选项]参数-s例如:sysconfignetworkinginterface[参数]-s该命令将强制应用网络接口的配置更改,并重启相关服务以应用更改。

四、注意事项1.配置更改可能影响系统的性能和稳定性,请在执行之前备份重要数据。

2.使用Sysconfig进行配置时,请确保了解所配置参数的含义和影响,以免造成系统故障。

3.在使用强制应用配置更改和重启相关服务的选项时,请谨慎操作,以免造成数据丢失或系统崩溃。

Linux下PHP5.6编译参数详解

Linux下PHP5.6编译参数详解

Linux下PHP5.6编译参数详解Linux下编译PHP时选项参数相当多,今天下决心./configure --help > help.txt导出一份编译选项清单并翻译了,方便以后查阅.SAPI modules(PHP SAPI接口模块的选项):大部分与apache、nginx等web服务有关--with-aolserver=DIR AOLserver的安装路径--with-apxs=FILE 编译出apache1.x版本的共享模块所存放的路径--with-apache=DIR 编译出apache1.x版本的模块,这里设定为apa che软件根目录--enable-mod-charset 启用apache的mod_charset(俄文apache用的)--with-apxs2filter=FILE 编译apache2.0的共享过滤模块,这里设定为ap ache apxs工具的路径--with-apxs2=FILE 编译共享apache2.0处理程序的模块,这里设定为apache apxs工具的路径--with-apache-hooks=FILE共享的apache1.0的钩子模块,这里设定为apache apxs工具的路径--with-apache-hooks-static=DIR 这里设定为apache apxs工具的路径--disable-cli 禁用命令行模式(php-cli)--with-continuity=DIR 编译php为连续服务模块。

参数为安装Conti nuity Server的根目录--enable-embed=TYPE 建立内嵌的SAPI库。

参数为shared、static --enable-fpm 开启fpm模式(nginx等服务用的)--with-fpm-user=USER fpm运行的用户,默认为nobody--with-fpm-group=GRP fpm运行的组,默认为nobody--with-fpm-systemd 激活系统集成功能,开启后fpm可以上报给系统一些信息--with-fpm-acl 使用POSIX 访问控制列表,5.6.5版本起有效--with-isapi=DIR 为Zeus web服务器建立ISAPI模块--with-litespeed 编译PHP为litespeed模块--with-milter=DIR 编译PHP为Milter应用程序--with-nsapi=DIR 为Netscape/iPlanet/Sun Web服务器编译PH P为NSAPI模块--enable-phpdbg 编译开启phpdbg调试器--enable-phpdbg-debug 编译phpdbg调试器为debug模式--with-phttpd=DIR 编译PHP为phttpd模块--with-pi3web=DIR 编译PHP为pi3web模块--with-roxen=DIR 编译PHP为roxen模块--enable-roxen-zts 编译PHP为roxen模块,线程安全--with-thttpd=SRCDIR 编译PHP为thttpd模块--with-tux=MODULEDIR 编译PHP为tux模块--with-webjames=SRCDIR 编译PHP为webjames模块--disable-cgi 禁用cgiGeneral settings(综合设置):--enable-gcov 开启gcov支持(测试代码覆盖率功能,)--enable-debug Compile with debugging symbols--with-layout=TYPE Set how installed files will be laid out. Type canbe either PHP or GNU [PHP]--with-config-file-path=PATH php.ini文件位置[PREFIX/lib]--with-config-file-scan-dir=PATH 扫描配置文件的路径--enable-sigchild 使用PHP自带的SIGCHLD处理器--enable-libgcc 启用libgcc的精确链接--disable-short-tags 默认禁用短形式的<?作为php代码的开始标记--enable-dmalloc 启用dmalloc(dmalloc是Linux C编程侦测记忆体溢出工具)--disable-ipv6 关闭ipv6支持--enable-dtrace 开启DTrace(动态跟踪)支持--enable-fd-setsize 设置描述集的大小Extensions(扩展):Extensions:--with-EXTENSION=shared[,PATH]并非所有扩展都能编译成共享方式NOTE: Not all extensions can be build as 'shared'.给个例子,如何把扩展编译成共享模式:Example: --with-foobar=shared,/usr/local/foobar/o Builds the foobar extension as shared extension.o foobar package install prefix is /usr/local/foobar/--disable-all 关闭默认为启用的所有扩展功能--with-regex=TYPE 正则表达式库类型。

configure的用法

configure的用法

configure的用法
configure是一种用于配置软件包的工具,可以帮助用户根据自己的需要定制软件包的安装和编译方式。

使用configure可以轻松地实现自定义的安装路径、编译选项和参数等。

在配置软件包时,常常需要使用configure脚本,该脚本会检测编译环境、依赖库和系统配置等信息,并生成Makefile文件,以便用户进行编译和安装。

configure脚本通常可以通过以下命令来使用:
./configure [选项]
其中,选项可以根据不同的软件包而有所不同,常见的选项包括: --prefix:指定安装路径
--with-xxx:指定依赖库xxx的路径
--enable-xxx:启用某些功能
--disable-xxx:禁用某些功能
--host:指定目标平台
使用configure时需要根据实际情况选择适当的选项,并且要先安装好所需的依赖库。

在执行完configure后,一般需要使用make
命令进行编译,然后使用make install命令进行安装。

configure
是一个非常实用的工具,在软件包的安装和配置中发挥着重要的作用,值得深入学习和掌握。

- 1 -。

configure关于交叉编译的参数设置

configure关于交叉编译的参数设置

configure关于交叉编译的参数设置configure的参数众多,一般包括如下:--srcdir=DIR这个选项对安装没有作用.他会告诉'configure'源码的位置.一般来说不用指定此选项,因为'configure'脚本一般和源码文件在同一个目录下.--program-prefix=PREFIX指定将被加到所安装程序的名字上的前缀.例如,使用'--program-prefix=g'来configure一个名为'tar'的程序将会使安装的程序被命名为'gtar'.当和其他的安装选项一起使用时,这个选项只有当他被`Makefile.in'文件使用时才会工作.--program-suffix=SUFFIX指定将被加到所安装程序的名字上的后缀.--program-transform-name=PROGRAM这里的PROGRAM是一个sed脚本.当一个程序被安装时,他的名字将经过`sed-e PROGRAM'来产生安装的名字.--build=BUILD指定软件包安装的系统平台.如果没有指定,默认值将是'--host'选项的值.--host=HOST指定软件运行的系统平台.如果没有指定,将会运行`config.guess'来检测.--target=GARGET指定软件面向(target to)的系统平台.这主要在程序语言工具如编译器和汇编器上下文中起作用.如果没有指定,默认将使用'--host'选项的值.--disable-FEATURE一些软件包可以选择这个选项来提供为大型选项的编译时配置,例如使用Kerberos认证系统或者一个实验性的编译器最优配置.如果默认是提供这些特性,可以使用'--disable-FEATURE'来禁用它,这里'FEATURE'是特性的名字.例如:$./configure--disable-gui-enable-FEATURE[=ARG]相反的,一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它.这里'FEATURE'是特性的名字.一个特性可能会接受一个可选的参数.例如:$./configure--enable-buffers=128`--enable-FEATURE=no'与上面提到的'--disable-FEATURE'是同义的.--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'是同义的.--without-PACKAGE有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNU ld.通过使用这个选项可以做到这一点:$./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--host=arm-linux这就是arm的交叉编译选项;configure--host=mipsel-linux这个就是mipsel的交叉编译选项。

linux内核配置make menuconfig菜单详解

linux内核配置make menuconfig菜单详解

LINUX内核配置MAKE MENUCONFIG菜单详解我们在linux内核裁剪过程中,进入内核所在目录,键入 make menuconfig 就会看到一堆的配置菜单,它们具体代表什么含义呢?我们该如何取舍呢?这里把近期收集到的一些信息做一个总结。

1、General setup代码成熟度选项,它又有子项:1.1、prompt for development and/or incomplete code/drivers该选项是对那些还在测试阶段的代码,驱动模块等的支持。

一般应该选这个选项,除非你只是想使用 LINUX 中已经完全稳定的东西。

但这样有时对系统性能影响挺大。

1.2、Cross-compiler tool prefix交叉编译工具前缀,例如:Cross-compiler tool prefix值为: (arm-linux-)1.3、Local version - append to kernel release内核显示的版本信息,填入 64字符以内的字符串,你在这里填上的字符口串可以用uname -a 命令看到。

1.4、Automatically append version information to the version string自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持1.5、Kernel compression mode (Gzip) --->有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,可以看到gzip,bzip2,lzma,lxo,一般可以按默认的gzip,如果要用bzip2,lzma,lxo要先装上支持1.6、Support for paging of anonymous memory (swap)使用交换分区或交换文件来做为虚拟内存,一定要选上。

1.7、System V IPC表示系统的进程间通信Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来,必选。

configure的用法

configure的用法

configure的用法Configure是一种常见的配置命令,它可以用于配置各种软件、应用程序以及系统设置等。

在使用configure命令之前,我们需要了解该命令的基本用法以及相关参数。

本文将围绕configure命令的用法,分步骤进行阐述。

第一步:下载源代码在使用configure命令之前,我们需要先下载源代码。

对于开源软件而言,一般都可以从官网或者源代码仓库进行下载。

在下载完源代码之后,我们需要将其解压缩到指定的目录中,这样才能进行后续的操作。

第二步:执行configure命令在解压缩源代码之后,我们需要进入到源代码的目录中,并执行configure命令。

该命令的基本用法如下所示:./configure [options]其中,options表示一些可选参数,这些参数可以影响configure命令的执行结果。

下面是一些常见的options及其含义:--prefix:指定安装路径,即安装后文件所在的目录。

--enable-xxx:启用某项功能,例如--enable-shared表示启用共享库。

--disable-xxx:禁用某项功能,例如--disable-debug表示禁用调试模式。

--with-xxx=:指定其他软件或库的安装路径,例如--with-zlib=/usr/local/zlib表示指定zlib库的安装路径。

--without-xxx:不使用某个软件或库,例如--without-sqlite 表示不使用sqlite数据库。

--help:显示帮助信息,例如./configure --help表示显示configure命令的帮助信息。

第三步:编译源代码在执行configure命令之后,我们需要进行编译。

通常情况下,我们可以使用make命令进行编译。

make命令会自动根据Makefile文件进行编译,生成可执行文件。

第四步:安装程序在编译完成之后,我们需要将生成的程序进行安装。

通常情况下,我们可以使用make install命令进行安装。

Linux内核编译配置选项详解

Linux内核编译配置选项详解

Code maturity level options代码成熟度选项Prompt for development and/or incomplete code/drivers 显示尚在开发中或尚未完成的代码与驱动.除非你是测试人员或者开发者,否则请勿选择General setup常规设置Local version - append to kernel release在内核版本后面加上自定义的版本字符串(小于64字符),可以用"uname -a"命令看到Automatically append version information to the version string 自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持Support for paging of anonymous memory (swap)使用交换分区或者交换文件来做为虚拟内存System V IPCSystem V进程间通信(IPC)支持,许多程序需要这个功能.必选,除非你知道自己在做什么IPC NamespacesIPC命名空间支持,不确定可以不选POSIX Message QueuesPOSIX消息队列,这是POSIX IPC中的一部分BSD Process Accounting将进程的统计信息写入文件的用户级系统调用,主要包括进程的创建时间/创建者/内存占用等信息BSD Process Accounting version 3 file format使用新的第三版文件格式,可以包含每个进程的PID和其父进程的PID,但是不兼容老版本的文件格式Export task/process statistics through netlink通过netlink接 口向用户空间导出任务/进程的统计信息,与BSDProcess Accounting的不同之处在于这些统计信息在整个 任务/进程生存期 都是可用的Enable per-task delay accounting在统计信息中包含进程等候系统资源(cpu,IO同步,内存交换等)所花费的时间UTS NamespacesUTS名字空间支持,不确定可以不选Auditing support审计支持,某些内 核模块(例如SELinux)需要它,只有同时选择其子项才能对系统调用进行审 计Enable system-call auditing support支持对系统调用的审计Kernel .config support把内核的配置信息编译进内核中,以后可以通过scripts/extract-ikconfig脚本来提取这些信息Enable access to .config through /proc/config.gz允许通过/proc/config.gz访问内核的配置信息Cpuset support只有含有大量CPU(大于16个)的SMP系统或NUMA(非一致内存访问)系统才需要它Kernel->user space relay support (formerly relayfs)在某些文件系统上(比 如debugfs)提 供从内核空间向用户空间传递大量数据的接口Initramfs source file(s)initrd已经被initramfs取代,如果你不明白这是什么意思,请保持空白Optimize for size (Look out for broken compilers!)编译时优化内核尺寸(使用"-Os"而不是"-O2"参数编译),有时会产生错误的二进制代码Enable extended accounting over taskstats收集额外的进程统计信息并通过taskstats接口发送到用户空间Configure standard kernel features (for small systems)配置标准的内核特性(为小型系统)Enable 16-bit UID system calls允许对UID系统 调用进行过时的16-bit包装Sysctl syscall support不需要重启就能修改内核的某些参数和变量,如果你也选择了支持/proc,将能从/proc/sys存取可以影响内核行为的参数或变量Load all symbols for debugging/kksymoops装载所有的调试符号表信息,仅供调试时选择Include all symbols in kallsyms在kallsyms中 包含内核知道的所有符号,内核将会增大300KDo an extra kallsyms pass除非你在kallsyms中发现了bug并需要报告这个bug才打开该选项Support for hot-pluggable devices支持热插拔设备,如usb与pc卡等,Udev也需要它Enable support for printk允许内核向终端打印字符信息,在需要诊断内核为什么不能运行时选择BUG() support显示故障和失败条件(BUG和WARN),禁用它将可能导致隐含的错误被忽略 Enable ELF core dumps内存转储支持,可 以帮助调试ELF格 式的程序Enable full-sized data structures for core在内核中使用全尺寸的数据结构.禁用它将使得某些内核的数据结构减小以节约内存,但是将会降低性能Enable futex support快速用户空间互斥体可以使线程串行化以避免竞态条件,也提高了响应速度.禁用它将导致内核不能正确的运行基于glibc的程序Enable eventpoll support支持事件轮循的系统调用Use full shmem filesystem完全使用shmem来 代替ramfs.shmem是基于共享内存的文件系统(可能用到swap),在启用TMPFS后可以挂载为tmpfs供用户空间使用,它比简单的ramfs先进许多Use full SLAB allocator使用SLAB完全 取代SLOB进行 内存分配,SLAB是 一种优秀的内存分配管理器,推荐使用Enable VM event counters for /proc/vmstat允许在/proc/vmstat中包含虚拟内存事件记数器Loadable module support可加载模块支持Enable loadable module support打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安装在/lib/modules/中Module unloading允许卸载已经加载的模块Forced module unloading允许强制卸载正在使用中的模块(比较危险)Module versioning support允许使用其他内核版本的模块(可能会出问题)Source checksum for all modules为所有的模块校验源码,如果你不是自己编写内核模块就不需要它Automatic kernel module loading让内核通过运行modprobe来自动加载所需要的模块,比如可以自动解决模块的依赖关系Block layer块设备层Enable the block layer块设备支持,使用 硬盘/USB/SCSI设备者必选Support for Large Block Devices仅在使用大于2TB的 块设备时需要Support for tracing block io actions块队列IO跟踪支 持,它允许用户查 看在一个块设备队列上发生的所有事件,可以通过blktrace程序获得磁盘当前的详细统计数据Support for Large Single Files仅在可能使用大于2TB的文件时需要IO SchedulersIO调度器Anticipatory I/O scheduler假设一个块设备只有一个物理查找磁头(例如一个单独的SATA硬盘),将多个随机的小写入流合并成一个大写入流,用写入延时换取最大的写入吞吐量.适用于大多数环境,特别是写入较多的环境(比如文件服务器)Deadline I/O scheduler使用轮询的调度器,简 洁小巧,提供了最 小的读取延迟和尚佳的吞吐量,特别适合于读取较多的环境(比如数据库)CFQ I/O scheduler使用QoS策略为 所有任务分配等量的带宽,避免进程被饿死并实现了较低的延迟,可以认为是上述两种调度器的折中.适用于有大量进程的多用户系统Default I/O scheduler默认IO调度器Bus options (PCI, PCMCIA, EISA, MCA, ISA)总线选项PCI supportPCI支持,如果使用了PCI或PCI Express设备就必选PCI access modePCI访问模式,强列建议选"Any"(系统将优先使用"MMConfig",然后使用"BIOS",最后使用"Direct"检测PCI设备)PCI Express supportPCI Express支持(目前主要用于显卡和千兆网卡)PCI Express Hotplug driver如果你的主板和设备都支持PCI Express热插拔就可以选上Use polling mechanism for hot-plug events对热插拔事件采用轮询机制,仅用于测试目的Root Port Advanced Error Reporting support由PCI Express AER驱动程序处理发送到Root Port的错误信息Message Signaled Interrupts (MSI and MSI-X)PCI Express支持两类中断:INTx使用传统的IRQ中断,可以与现行的PCI总线的驱动程序和操作系统兼容;MSI则是通过inbound Memory Write触发和发送中断,更适合多CPU系统.可以使用"pci=nomsi"内核引导参数关闭MSIPCI Debugging将PCI调试信息 输出到系统日志里Interrupts on hypertransport devices允许本地的hypertransport设备使用中断ISA support现在基本上没有ISA的设备了,如果你有就选吧MCA support微通道总线,老旧 的IBM的台式机 和笔记本上可能会有这种总线NatSemi SCx200 support在使用AMD Geode处理器的机器上才可能有PCCARD (PCMCIA/CardBus) supportPCMCIA卡(主要用于笔记本)支持Enable PCCARD debugging仅供调试16-bit PCMCIA support一些老的PCMCIA卡使用16位的CardBus32-bit CardBus support当前的PCMCIA卡 基本上都是32位 的CardBusCardBus yenta-compatible bridge support使用PCMCIA卡 的基本上都需要选择这一项,子项请按照自己实际使用的PCMCIA卡选择{省略的部分请按照自己实际使用的PCMCIA卡选择}PCI Hotplug SupportPCI热插拔支持,如果你有这样的设备就到子项中去选吧Cryptographic options加密选项Cryptographic API提供核心的加密API支持.这 里的加密算法被广泛的应用于驱动程序通信协议等机制中.子选项可以全不选,内核中若有其他部分依赖它,会自动选上Cryptographic algorithm manager创建加密模版实例,必 须要选HMAC support为IPSec所必 须,可为PPPoE提供压缩支持XCBC supportKeyed-Hashing with encryption algorithmKeyed-Hashing用加密算法Null algorithmsNULL加密算法(什么也不做),用于IPsec协议的封装安全载荷模块(ESP)MD4 digest algorithm老旧的摘要算法,已 经过时MD5 digest algorithm主流摘要算法,128位(已 被中国山东大学王小云攻破,可以快速找到碰撞)SHA1 digest algorithm主流摘要算法,160位(已 被中国山东大学王小云攻破,可以快速找到碰撞),速度与MD5相当SHA256 digest algorithm更好的摘要算法,256位,速 度较SHA1稍慢SHA384 and SHA512 digest algorithms更好的摘要算法,384/512位,速度大约只有SHA1的40-50%Whirlpool digest algorithms最安全的摘要算法,512位,已 被列入ISO标准,目前最新版本为3.0(2003年发布)Tiger digest algorithms号称最快的摘要算法,192位,专 门为64位CPU进行了优化GF(2^128) multiplication functions吉安卡洛-费斯切拉(2 ^ 128)乘法的功能Efficient table driven implementation of multiplications field GF(2^128). This is needed by some cypher modes. T option will be selected automatically if you select such cipher mode. Only select this option by hand if you exp an external module that requires these functionsECB support电子密码本,最简 单的加密方法CBC support密码块链,IPSec需要使用它PCBC supportPCBC: Propagating Cipher Block Chaining mode . This block cipher algorithm is required for RxRPC.LRW supportLRW: Liskov Rivest Wagner, a tweakable, non malleable, nnarrow block cipher mode for dm-crypt. Use it with ciph specification string aes-lrw-benbi, the key must be 256,The first 128, 192 or 256 bits in the key are used for A rest is used to tie each cipher block to its logical posSoftware async crypto daemonThis is a generic software asynchronous crypto daemon thconverts an arbitrary synchronous software crypto algori into an asynchronous algorithm that executes in a kernel。

configure用法

configure用法

configure用法一、什么是c o n f i g u r e?c o nf ig ur e是一个用于生成可执行文件的脚本工具。

它主要用于在软件安装前进行一些预配置操作,包括检测系统环境、编译选项的设置以及依赖库的检查等。

co n fi gu re脚本通常是由Au to co nf自动生成的,是一个非常重要的自动化配置工具。

二、使用c onfigur e的步骤使用co nf ig ur e脚本的步骤包括以下几个方面:1.下载源代码:首先,我们需要从开发者的网站或软件仓库下载软件的源代码。

一般情况下,软件的网站会提供源代码的压缩包,我们可以通过下载并解压缩这个压缩包来获取源代码。

2.运行co nf ig ur e:解压缩源代码后,进入源代码所在的目录,在终端中运行"./c on fi gu r e"命令。

这将触发c on fi gu re脚本的执行。

3.配置选项:c on fig u re脚本会根据当前系统的环境和用户的需求,生成一个适应当前环境的Ma ke fi le文件。

我们可以通过配置选项来调整生成的M ak ef il e文件,从而满足我们的需求。

4.编译和安装:配置完成后,我们可以运行"m ak e"命令进行软件的编译。

编译完成后,运行"ma ke in st al l"命令将软件安装到系统中。

三、c o n f i g u r e脚本中常用的选项c o nf ig ur e脚本中有很多常用的选项,可以根据实际需求进行配置。

下面列举了一些常用的选项:---p re fi x:指定安装目录。

默认情况下,软件会安装到/usr/lo ca l目录下,但我们可以使用--pr ef ix选项来指定其他的安装目录。

---w it h-xx x:指定依赖库的安装路径。

有些软件在编译时需要依赖其他的库,我们可以使用--w i th-x xx选项来指定这些依赖库的安装路径。

Linux编译中Configure参数选项详解

Linux编译中Configure参数选项详解

Configure参数选项详解Linux 环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其宗,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。

Configure 脚本配置工具就是基础之一,它是autoconf 的工具的基本应用。

与一些技巧相比,Configure 显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。

'configure' 脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help' 选项执行'configure' 脚本可以看到可用的所有选项. 尽管许多选项是很少用到的, 但是当你为了特殊的需求而configure 一个包时, 知道他们的存在是很有益处的. 下面对每一个选项进行简略的介绍:'--cache-file=FILE''configure' 会在你的系统上测试存在的特性( 或者bug!). 为了加速随后进行的配置, 测试的结果会存储在一个cachefile 里. 当configure 一个每个子树里都有'configure' 脚本的复杂的源码树时, 一个很好的cache file 的存在会有很大帮助'--help'输出帮助信息. 即使是有经验的用户也偶尔需要使用使用'--help' 选项, 因为一个复杂的项目会包含附加的选项. 例如,GCC 包里的'configure' 脚本就包含了允许你控制是否生成和在GCC 中使用GNU 汇编器的选项.'--no-create''configure' 中的一个主要函数会制作输出文件. 此选项阻止'configure' 生成这个文件. 你可以认为这是一种演习(dryrun), 尽管缓存(cache) 仍然被改写了.'--quiet''--silent'当'configure' 进行他的测试时, 会输出简要的信息来告诉用户正在作什么. 这样作是因为'configure' 可能会比较慢, 没有这种输出的话用户将会被扔在一旁疑惑正在发生什么. 使用这两个选项中的任何一个都会把你扔到一旁.( 译注: 这两句话比较有意思, 原文是这样的: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' 会查看随此选项传递的参数, 当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子, 当安装一个包, 例如说Emacs, 下面的命令将会使Emacs Lisp file 被安装到"/opt/gnu/share":$ ./configure --prefix=/opt/gnu'--exec-prefix=EPREFIX'与'--prefix' 选项类似, 但是他是用来设置结构倚赖的文件的安装位置. 编译好的'emacs' 二进制文件就是这样一个问件. 如果没有设置这个选项的话, 默认使用的选项值将被设为和'--prefix' 选项值一样.'--bindir=DIR'指定二进制文件的安装位置. 这里的二进制文件定义为可以被用户直接执行的程序.'--sbindir=DIR'指定超级二进制文件的安装位置. 这是一些通常只能由超级用户执行的程序.'--libexecdir=DIR'指定可执行支持文件的安装位置. 与二进制文件相反, 这些文件从来不直接由用户执行, 但是可以被上面提到的二进制文件所执行.'--datadir=DIR'指定通用数据文件的安装位置.'--sysconfdir=DIR'指定在单个机器上使用的只读数据的安装位置.'--sharedstatedir=DIR'指定可以在多个机器上共享的可写数据的安装位置.'--localstatedir=DIR'指定只能单机使用的可写数据的安装位置.'--libdir=DIR'指定库文件的安装位置.'--includedir=DIR'指定 C 头文件的安装位置. 其他语言如C++ 的头文件也可以使用此选项.'--oldincludedir=DIR'指定为除GCC 外编译器安装的 C 头文件的安装位置.'--infodir=DIR'指定Info 格式文档的安装位置.Info 是被GNU 工程所使用的文档格式.'--mandir=DIR'指定手册页的安装位置.'--srcdir=DIR'这个选项对安装没有作用. 他会告诉'configure' 源码的位置. 一般来说不用指定此选项, 因为'configure' 脚本一般和源码文件在同一个目录下.'--program-prefix=PREFIX'指定将被加到所安装程序的名字上的前缀. 例如, 使用'--program-prefix=g' 来configure 一个名为'tar' 的程序将会使安装的程序被命名为'gtar'. 当和其他的安装选项一起使用时, 这个选项只有当他被`Makefile.in' 文件使用时才会工作.'--program-suffix=SUFFIX'指定将被加到所安装程序的名字上的后缀.'--program-transform-name=PROGRAM'这里的PROGRAM 是一个sed 脚本. 当一个程序被安装时, 他的名字将经过`sed -e PROGRAM' 来产生安装的名字.'--build=BUILD'指定软件包安装的系统平台. 如果没有指定, 默认值将是'--host' 选项的值。

c configure用法

c configure用法

`configure` 是一个常见的命令行工具,它通常在从源代码编译安装软件时使用。

`configure` 脚本是由开发者预先编写的,用来检查系统环境并设置编译参数,以确保软件能够在您的系统上正确编译和安装。

当你下载了一个软件的源代码包,比如一个名为 `example.tar.gz` 的压缩文件,并且解压后通常会看到一个叫做 `configure` 的脚本。

以下是使用 `configure` 脚本配置软件的一般步骤:1. **解压源代码包**:```bashtar -xzvf example.tar.gz```2. **进入解压后的目录**:```bashcd example```3. **运行 `configure` 脚本**:```bash./configure```这个命令会检查你的系统环境,并为接下来的编译过程准备合适的参数。

4. **自定义配置**:`configure` 脚本支持多种配置选项,可以通过 `--option` 参数来进行设置,例如:- `--prefix=PATH`:指定安装目录,默认通常是 `/usr/local`。

- `--enable-feature` 或 `--disable-feature`:启用或禁用某些特性。

- `--with-package` 或 `--without-package`:指定依赖包的路径。

你可以通过运行 `./configure --help` 来查看所有可用的配置选项。

5. **查看配置摘要**:配置完成后,`configure` 脚本通常会输出一个摘要,告诉你哪些功能将被包含,哪些库将被使用等信息。

6. **编译和安装**:```bashmakesudo make install```这两个命令将根据`configure` 脚本生成的Makefile 来编译源代码并安装到指定位置。

请注意,这只是一个大致的流程,不同的软件可能有不同的配置选项和步骤。

configure 参数

configure 参数

configure 参数configure参数在计算机领域中扮演着非常重要的角色,它可以用来配置软件、硬件、网络等系统的行为。

通过合理的configure参数设置,可以提高系统的性能、安全性和可靠性。

本文将就configure参数的概念、作用以及配置方法进行介绍。

configure参数是指在编译和安装软件时,用来配置软件的一组参数。

通过configure参数,用户可以根据自己的需求来对软件进行定制化设置,以达到最优化的效果。

在Linux系统中,configure参数通常由一个configure脚本来负责解析和处理,用户可以通过在命令行中输入不同的参数来配置软件。

configure参数的作用主要包括但不限于以下几个方面:1. 指定安装路径:用户可以通过configure参数来指定软件的安装路径,方便管理和维护软件。

2. 启用或禁用特定功能:有些软件在编译时支持多种功能,用户可以通过configure参数来选择启用或禁用特定的功能,以减少资源消耗。

3. 指定依赖关系:有些软件在编译安装时需要依赖其他库或软件包,用户可以通过configure参数来指定依赖关系,确保软件可以正常运行。

4. 调整性能参数:用户可以通过configure参数来调整软件的性能参数,如缓存大小、并发连接数等,以提高软件的性能表现。

在实际应用中,用户可以通过以下几种方式来配置configure参数:1. 命令行方式:用户可以在命令行中使用./configure命令来配置软件,通过在后面添加不同的参数来实现配置。

2. 环境变量方式:用户还可以通过设置环境变量的方式来配置configure参数,如设置CFLAGS、LDFLAGS等环境变量。

3. 配置文件方式:有些软件还支持通过配置文件的方式来配置configure参数,用户可以编辑配置文件来实现配置。

需要注意的是,不同的软件可能有不同的configure参数,用户在配置软件时需要查看软件的官方文档或README文件,以了解具体的configure参数和用法。

configure文件语法

configure文件语法

configure文件语法
configure文件是一种常用的配置文件,在Linux系统中被广泛使用。

它通常用于指定软件的编译和安装参数,以及一些其他的系统级配置。

configure文件的语法比较简单,它主要由一系列的命令和变量组成。

其中,命令通常以AC_或AM_开头,而变量则以一些特定的前缀来标识其类型。

在configure文件中,命令和变量的使用都是有一定规则的。

例如,命令通常需要在特定的环境中使用,而变量则需要进行赋值或引用。

此外,configure文件还可以包含一些条件语句和循环语句等控制结构,以方便对不同条件下的配置进行处理。

总的来说,configure文件的语法非常灵活,可以用于实现各种不同的配置需求。

对于Linux系统管理员和开发人员来说,熟练掌握configure文件的语法是非常重要的。

- 1 -。

configure -prefix的用法

configure -prefix的用法

文章标题:深度解析configure -prefix的用法一、引言在软件编译安装过程中,常常会用到configure命令来进行软件的配置,其中configure -prefix是一个常见且重要的参数。

本文将深入探讨configure -prefix的用法,帮助读者更好地理解和应用这一参数。

二、configure -prefix的概念在软件编译安装过程中,configure用于检查系统环境,设置一些参数以适应不同的系统评台和需求。

而-prefix参数则用于指定软件安装的路径,即将软件安装到指定的目录下。

这样做的好处是可以将软件安装到指定目录,而不是默认的系统目录下,从而更好地管理和维护软件。

三、configure -prefix的用法1. 指定安装路径通过configure -prefix=/path/to/installation来指定软件的安装路径。

例如:```./configure -prefix=/usr/local/software```这样就会将软件安装到/usr/local/software目录下。

2. 区分不同版本当需要安装多个版本的软件或者不同的软件时,可以通过-prefix参数来区分不同的版本,避免版本混用或者冲突。

3. 系统维护和管理将软件安装到指定目录下,使得系统维护更加方便。

可以根据需要对软件进行升级、卸载或者备份,而不会影响系统的稳定性和其他软件的正常运行。

4. 避免权限问题有些用户可能没有权限将软件安装到系统目录下,通过指定安装路径,可以避免权限问题,将软件安装在自己的用户目录下。

四、configure -prefix的个人观点和理解在我看来,configure -prefix是非常实用且必要的参数。

通过指定安装路径,可以更好地管理和维护软件,避免版本混用和权限问题。

同时也方便了开发人员对软件的开发和调试。

在进行软件安装时,我总是会优先考虑使用-prefix参数来指定安装路径。

configure 参数详解

configure 参数详解

'--x-libraries=DIR'
类似的,'--x-libraries'选项提供了向'configure'脚本指明包含X11库的目录的方法.
在源码树中运行'configure'是不必要的同时也是不好的.一个由'configure'产生的良好的'Makefile'可以构筑源码属于另一棵树的软件包.在一个独立于源码的树中构筑派生的文件的好处是很明显的:派生的文件,如目标文件,会凌乱的散布于源码树.这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难.建议使用三棵树:一棵源码树(source tree),一棵构筑树(build tree),一棵安装树(install tree).这里有一个很接近的例子,是使用这种方法来构筑GNU malloc包:
$ ./configure --with-tcl=/usr/local --with-tk=/usr/local
'--with-PACKAGE=no'与下面将提到的'--without-PACKAGE'是同义的.
'--without-PACKAGE'
有时候你可能不想让你的软件包与系统已有的软件包交互.例如,你可能不想让你的新编译器使用GNU ld.通过使用这个选项可以做到这一点:
'--version'
打印用来产生'configure'脚本的Autoconf的版本号.
'--prefix=PEWFIX'
'--prefix'是最常用的选项.制作出的'Makefile'会查看随此选项传递的参数,当一个包在安装时可以彻底的重新安置他的结构独立部分.举一个例子,当安装一个包,例如说Emacs,下面的命令将会使Emacs Lisp file被安装到"/opt/gnu/share":

linux configure -fpic参数

linux configure -fpic参数

linux configure -fpic参数
在Linux环境中,当你编译或配置一个软件包时,可能会遇到各种编译选项。

-fpic是GCC(GNU Compiler Collection)中的一个编译选项,它用于生成位置无关代码(Position-Independent Code, PIC)。

位置无关代码是指其执行不依赖于它们在内存中的绝对地址的代码。

这对于动态链接库(如.so文件)特别重要,因为这些库通常会被加载到不同的内存地址,以供多个程序共享使用。

具体来说,-fpic选项告诉编译器:
1.生成可以在任何地址执行的机器代码。

2.避免使用需要知道代码确切内存地址的指令。

3.使用相对寻址或其他技术来访问全局和静态变量。

与-fpic相关的另一个选项是-fPIC(注意大小写)。

它们之间的主要区别在于,-fPIC是为了更大的代码模型而设计的,通常用于64位架构,而-fpic则是为较小的代码模型设计的,更常用于32位架构。

然而,在实际使用中,许多现代编译器和架构都支持-fPIC作为默认或更通用的选项,即使在32位系统上也是如此。

当你配置一个软件包以构建动态链接库时(例如,使
用./configure --enable-shared),该软件包的构建系统可能会自动添加-fPIC或-fpic选项,以确保生成的代码是位置无关的。

但是,
如果你需要手动编译或链接代码,并希望它是位置无关的,那么你可能需要显式地指定这些选项。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Configure参数选项详解Linux 环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不离其宗,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。

Configure 脚本配置工具就是基础之一,它是autoconf 的工具的基本应用。

与一些技巧相比,Configure 显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。

'configure' 脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上'--help' 选项执行'configure' 脚本可以看到可用的所有选项. 尽管许多选项是很少用到的, 但是当你为了特殊的需求而configure 一个包时, 知道他们的存在是很有益处的. 下面对每一个选项进行简略的介绍:'--cache-file=FILE''configure' 会在你的系统上测试存在的特性( 或者bug!). 为了加速随后进行的配置, 测试的结果会存储在一个cachefile 里. 当configure 一个每个子树里都有'configure' 脚本的复杂的源码树时, 一个很好的cache file 的存在会有很大帮助'--help'输出帮助信息. 即使是有经验的用户也偶尔需要使用使用'--help' 选项, 因为一个复杂的项目会包含附加的选项. 例如,GCC 包里的'configure' 脚本就包含了允许你控制是否生成和在GCC 中使用GNU 汇编器的选项.'--no-create''configure' 中的一个主要函数会制作输出文件. 此选项阻止'configure' 生成这个文件. 你可以认为这是一种演习(dryrun), 尽管缓存(cache) 仍然被改写了.'--quiet''--silent'当'configure' 进行他的测试时, 会输出简要的信息来告诉用户正在作什么. 这样作是因为'configure' 可能会比较慢, 没有这种输出的话用户将会被扔在一旁疑惑正在发生什么. 使用这两个选项中的任何一个都会把你扔到一旁.( 译注: 这两句话比较有意思, 原文是这样的: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' 会查看随此选项传递的参数, 当一个包在安装时可以彻底的重新安置他的结构独立部分. 举一个例子, 当安装一个包, 例如说Emacs, 下面的命令将会使Emacs Lisp file 被安装到"/opt/gnu/share":$ ./configure --prefix=/opt/gnu'--exec-prefix=EPREFIX'与'--prefix' 选项类似, 但是他是用来设置结构倚赖的文件的安装位置. 编译好的'emacs' 二进制文件就是这样一个问件. 如果没有设置这个选项的话, 默认使用的选项值将被设为和'--prefix' 选项值一样.'--bindir=DIR'指定二进制文件的安装位置. 这里的二进制文件定义为可以被用户直接执行的程序.'--sbindir=DIR'指定超级二进制文件的安装位置. 这是一些通常只能由超级用户执行的程序.'--libexecdir=DIR'指定可执行支持文件的安装位置. 与二进制文件相反, 这些文件从来不直接由用户执行, 但是可以被上面提到的二进制文件所执行.'--datadir=DIR'指定通用数据文件的安装位置.'--sysconfdir=DIR'指定在单个机器上使用的只读数据的安装位置.'--sharedstatedir=DIR'指定可以在多个机器上共享的可写数据的安装位置.'--localstatedir=DIR'指定只能单机使用的可写数据的安装位置.'--libdir=DIR'指定库文件的安装位置.'--includedir=DIR'指定 C 头文件的安装位置. 其他语言如C++ 的头文件也可以使用此选项.'--oldincludedir=DIR'指定为除GCC 外编译器安装的 C 头文件的安装位置.'--infodir=DIR'指定Info 格式文档的安装位置.Info 是被GNU 工程所使用的文档格式.'--mandir=DIR'指定手册页的安装位置.'--srcdir=DIR'这个选项对安装没有作用. 他会告诉'configure' 源码的位置. 一般来说不用指定此选项, 因为'configure' 脚本一般和源码文件在同一个目录下.'--program-prefix=PREFIX'指定将被加到所安装程序的名字上的前缀. 例如, 使用'--program-prefix=g' 来configure 一个名为'tar' 的程序将会使安装的程序被命名为'gtar'. 当和其他的安装选项一起使用时, 这个选项只有当他被`Makefile.in' 文件使用时才会工作.'--program-suffix=SUFFIX'指定将被加到所安装程序的名字上的后缀.'--program-transform-name=PROGRAM'这里的PROGRAM 是一个sed 脚本. 当一个程序被安装时, 他的名字将经过`sed -e PROGRAM' 来产生安装的名字.'--build=BUILD'指定软件包安装的系统平台. 如果没有指定, 默认值将是'--host' 选项的值。

'--host=HOST'指定软件运行的系统平台. 如果没有指定, 将会运行`config.guess' 来检测.'--target=GARGET'指定软件面向(target to) 的系统平台. 这主要在程序语言工具如编译器和汇编器上下文中起作用. 如果没有指定,默认将使用'--host' 选项的值.'--disable-FEATURE'一些软件包可以选择这个选项来提供为大型选项的编译时配置, 例如使用Kerberos 认证系统或者一个实验性的编译器最优配置. 如果默认是提供这些特性, 可以使用'--disable-FEATURE' 来禁用它, 这里'FEATURE' 是特性的名字.例如:$ ./configure --disable-gui'--enable-FEATURE[=ARG]'相反的, 一些软件包可能提供了一些默认被禁止的特性, 可以使用'--enable-FEATURE' 来起用它. 这里'FEATURE'是特性的名字. 一个特性可能会接受一个可选的参数. 例如:$ ./configure --enable-buffers=128`--enable-FEATURE=no' 与上面提到的'--disable-FEATURE' 是同义的.'--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' 是同义的.'--without-PACKAGE'有时候你可能不想让你的软件包与系统已有的软件包交互. 例如, 你可能不想让你的新编译器使用GNU ld. 通过使用这个选项可以做到这一点:$ ./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' 是不必要的同时也是不好的. 一个由'configure' 产生的良好的'Makefile' 可以构筑源码属于另一棵树的软件包. 在一个独立于源码的树中构筑派生的文件的好处是很明显的: 派生的文件, 如目标文件, 会凌乱的散布于源码树. 这也使在另一个不同的系统或用不同的配置选项构筑同样的目标文件非常困难. 建议使用三棵树:一棵源码树(source tree), 一棵构筑树(buildtree), 一棵安装树(install tree). 这里有一个很接近的例子, 是使用这种方法来构筑GNU malloc 包:$ gtar zxf mmalloc-1.0.tar.gz$ mkdir 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 compatible 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 。

相关文档
最新文档