编译器选项基本./configure解释

时间:2014-09-11 03:15:56

标签: linux cygwin wget

最近,我尝试从cygwin环境中的源代码编译一个gnu wget,如果perl is not found则弹出错误。否则,perl在 / bin / 上安装了perl和perl5,但是wget是在 / usr / bin 上尝试搜索perl。我想我已经错过了基本的./configure来设置路径可执行文件。所以我的问题很基本。

以下选项的全部内容:

*

--bindir=DIR

--sbindir=DIR

--libexecdir=DIR

*

谢谢

2 个答案:

答案 0 :(得分:0)

  

以下选项的全部内容:

*

--bindir=DIR
--sbindir=DIR
--libexecdir=DIR

第一个(bindir),是安装二进制文件的地方。对于wget,那是(在我的系统上)/usr/bin

第二个(sbindir),是安装静态二进制文件的地方。您可以将其设置为/usr/sbin

第三个(libexecdir),是安装运行时库的地方。这通常是/usr/lib

事实上,通常您会configure使用--prefix设置所有三个。

./configure --prefix=/usr/local

答案 1 :(得分:0)

这些选项指定将要安装正在编译的软件包的目录。据我所知,它并不处理configure执行的检查。确保perl位于$PATH。如果没有任何帮助,请尝试在配置脚本中找到确切的位置(通常它是由机器人生成的,不适合人眼,但毕竟它是一个shell脚本,任何人都可以阅读它)并看看是什么确切地执行检查以找到perl

更新:我已经检查过,对应于perl的测试在configure.ac中看起来像这样(基本上是#34;源代码"用于configure ):

AC_PATH_PROGS(PERL, [perl5 perl], no)
AC_PATH_PROG(POD2MAN, pod2man, no)

这意味着PERL的{​​{1}}或perl5可执行文件(perl中的某个地方)已被选中,然后$PATH可执行文件POD2MAN }。仔细检查配置输出和pod2man文件,看看哪些测试失败了。

Update2 config.logAC_PATH_PROG的第三个参数是value-if-no-found。您也可以为此特定检查指定第四个参数AC_PATH_PROGS。确保在更改$PATH后重建configure(通常会自动发生,但可能由configure.ac明确执行)