如何更改 ./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 版本不足。

相關內容