如何更改 ./configure 以在 /usr/bin 上使用特定的二进制文件?

如何更改 ./configure 以在 /usr/bin 上使用特定的二进制文件?

运行 macOS Catalina 10.15.6。我的问题与使用 GNU 工具进行编译更相关,因此它可能更适合不同的 SE 站点 — 如果是这种情况,我很乐意关闭并询问其他地方。

我正在尝试编译软件(即wine-6.0),并且编译需要 bison,其中已经有一个可执行文件/usr/bin。但是,bison 的版本需要 >3.0 才能编译该程序,并且二进制文件的/usr/bin版本是 2.7.6。我编译了 bison 3.7.6,本来打算将新的 bison 3.7 二进制文件移入,/usr/bin但由于 macOS 的文件系统保护,我不能只替换/usr/bin/bison.我必须在恢复模式下重新启动我的 Mac 才能禁用文件系统锁定,但我有一些打开的东西目前无法停止运行。

使用./configure --enable-win64会出现以下错误:

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

为了解决这个问题,我认为修改PATH会起作用;我之前将 bison 3.7.6 二进制文件移至/usr/local/bin/bison并执行过,但它不起作用;它仍然只是关于没有野牛 >3.0 的错误(与我尝试弄乱野牛之前的错误相同):export PATH=/usr/local/bin:$PATH./configure

checking for bison... bison
checking whether bison is recent enough... no
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.

奇怪的是,只是尝试运行 bison 使用正确的二进制文件。

$ bison -V
bison (GNU Bison) 3.7.6
Written by Robert Corbett and Richard Stallman.
...

$ which bison
/usr/local/bin/bison

我也尝试稍微弄乱该configure.ac文件,但问题是我真的不知道我在那里做什么。编辑配置文件并重新运行autoconf并使用./configure然后仍然不起作用。最终,我的问题是:如何确保./configure使用正确的野牛二进制文件?

答案1

我的问题是bison安装不好。

我从源代码编译了 bison,而不是让 brew 决定将所有内容放在哪里,然后在使用生成 wine 编译的 makefileconfigure --prefix=/usr/local时确保 PATH 是正确的,并且它有效。configure

问题是由于 wine 配置脚本仅检查在空文件上运行 Bison 的退出代码以验证版本而引起的。由于 bison 由于安装损坏而失败,因此它给出了错误退出代码,导致配置脚本认为 bison 版本不足。

相关内容