最近,我尝试从cygwin环境中的源代码编译一个gnu wget,如果perl is not found
则弹出错误。否则,perl在 / bin / 上安装了perl和perl5,但是wget是在 / usr / bin 上尝试搜索perl。我想我已经错过了基本的./configure来设置路径可执行文件。所以我的问题很基本。
以下选项的全部内容:
*
--bindir=DIR
--sbindir=DIR
--libexecdir=DIR
*
谢谢
答案 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.log
和AC_PATH_PROG
的第三个参数是value-if-no-found。您也可以为此特定检查指定第四个参数AC_PATH_PROGS
。确保在更改$PATH
后重建configure
(通常会自动发生,但可能由configure.ac
明确执行)