Wie können Sie ./configure ändern, um eine bestimmte Binärdatei über /usr/bin zu verwenden?

Wie können Sie ./configure ändern, um eine bestimmte Binärdatei über /usr/bin zu verwenden?

Ich verwende macOS Catalina 10.15.6. Meine Frage bezieht sich eher auf die Kompilierung mit GNU-Tools und ist daher möglicherweise besser für eine andere SE-Site geeignet. Wenn das der Fall ist, schließe ich sie gerne und frage woanders nach.

Ich versuche, Software zu kompilieren (nämlich wine-6.0), und die Kompilierung erfordert Bison, für das bereits eine ausführbare Datei in vorhanden ist /usr/bin. Allerdings muss Bison Version >3.0 haben, um das Programm zu kompilieren, und die Binärdatei in /usr/binhat Version 2.7.6. Ich habe Bison 3.7.6 kompiliert und wollte die neue Bison 3.7-Binärdatei einfach in verschieben, /usr/binaber aufgrund des Dateisystemschutzes von macOS kann ich nicht einfach ersetzen /usr/bin/bison. Ich müsste meinen Mac im Wiederherstellungsmodus neu starten, um die Dateisystemsperre zu deaktivieren, aber ich habe etwas geöffnet, das im Moment nicht beendet werden kann.

Die Verwendung ./configure --enable-win64führt zu folgendem Fehler:

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.

Ich dachte, eine Änderung PATHwürde das Problem beheben. Ich habe die Bison-3.7.6-Binärdatei verschoben und das schon einmal /usr/local/bin/bisongemacht , aber es funktioniert nicht. Es erscheint immer noch die Fehlermeldung, dass Bison nicht >3.0 ist (dieselbe Fehlermeldung wie vor meinem Versuch, Bison zu manipulieren):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.

Das Merkwürdige ist, dass schon beim Versuch, Bison auszuführen, die richtige Binärdatei verwendet wird.

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

$ which bison
/usr/local/bin/bison

Ich habe auch versucht, ein wenig mit der Datei herumzuspielen configure.ac, aber das Problem ist, dass ich nicht wirklich weiß, was ich da mache. Das Bearbeiten der Konfigurationsdatei und das erneute Ausführen autoconfund Verwenden ./configurefunktioniert immer noch nicht. Letztendlich lautet meine Frage: Wie stelle ich sicher, dass ./configuredie richtige Bison-Binärdatei verwendet wird?

Antwort1

Mein Problem war, dass die bisonInstallation fehlerhaft war.

Ich habe Bison aus dem Quellcode kompiliert, configure --prefix=/usr/localanstatt Brew entscheiden zu lassen, wo alles abgelegt wird, und habe dann sichergestellt, dass PATH korrekt war, als ich es configurezum Generieren des Makefiles für die Wine-Kompilierung verwendet habe, und es hat funktioniert.

Das Problem entstand, weil das Wine-Konfigurationsskript nur den Exit-Code der Ausführung von Bison auf einer leeren Datei überprüfte, um die Version zu verifizieren. Da Bison aufgrund einer fehlerhaften Installation fehlschlug, gab es den Fehler-Exit-Code aus, wodurch das Konfigurationsskript annahm, dass Bison eine unzureichende Version sei.

verwandte Informationen