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的穿插编译选项。
============================
下面转一篇对我有协助的博客
在穿插编译的时分总是运用configure –host=arm-linux 嘿嘿 但是在CONFIGURE中有许多的测验程序是不能够在HOST上运转的就会呈现: error: cannot run test program while cross compiling
相似的过错,能够运用CACHEFILE处理这个问题,还要谢谢ABSURD兄的文章给我的辅导。
我是这样处理的第一步:记录下过错的当地如:checking abstract socket namespace… configure: error: cannot run test program while cross compiling
注意到abstract socket namespace在configure中查找abstract socket能够看到相似这样的结构
echo $as_me:$LINENO: checking abstract socket namespace >5
echo $ECHO_N checking abstract socket namespace… $ECHO_C >6
if test ${ac_cv_have_abstract_sockets+set} = set; then
echo $ECHO_N (cached) $ECHO_C >6
其间ac_cv_have_abstract_sockets是咱们要查找的变量
运用echo ac_cv_have_abstract_sockets=yes>arm-linux.cache
然后
./configure –host=arm-linux –cache-file=arm-linux.cache
K这样就搞定了
别的:
1:fedora 中 /sbin/init 3 封闭图形界面
有些 configure 依靠lib 编译,而且需求pkg-config 支撑,或许需求设定 PKG_CONFIG_PATH 环境变量, 此变量指向所依靠lib 的xxx.pc描绘文件, xxx.pc描叙lib 的特性,如:
prefix=/develop/upnp/mips_libupnp
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=/develop/upnp/mips_libupnp/include
Name: libupnp
Description: Linux SDK for UPnP Devices
Version: 1.6.3
ibs: -L${libdir} -lupnp -lthreadutil -lixml
Cflags: -pthread -I${includedir}/upnp
2:configure 脚本判别lib 是否存在时是选用编译C 文件的办法,所以有时分穿插编译时,可经过修正 configure文件经过测验,详细是增加 -I 或许-L 指明方位。有些经过 –host 指定方针渠道,–host=mipsel-linux (libupnp);有些经过 –cross-prefix=mipsel-linux- –cross-compile(ushare) 指定,详细可经过configure –help/-h 检查。