運行 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 版本不足。