Executando o macOS Catalina 10.15.6. Minha pergunta está mais relacionada à compilação com ferramentas GNU, portanto pode ser mais adequada para um site SE diferente - ficarei feliz em encerrar e perguntar em outro lugar se for esse o caso.
Estou tentando compilar software (ou seja, wine-6.0
) e a compilação requer bison, para o qual já existe um executável em /usr/bin
. No entanto, o bison precisa ter a versão> 3.0 para compilar o programa e o binário /usr/bin
é a versão 2.7.6. Compilei o bison 3.7.6 e ia apenas mover o novo binário do bison 3.7, /usr/bin
mas devido à proteção do sistema de arquivos do macOS, não posso simplesmente substituir o /usr/bin/bison
. Eu teria que reiniciar meu mac no modo de recuperação para desativar o bloqueio do sistema de arquivos, mas tenho algo aberto que não pode parar de funcionar no momento.
Usando ./configure --enable-win64
dá o seguinte erro:
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.
Para consertar, pensei que modificar PATH
funcionaria; Mudei o binário do bison 3.7.6 para /usr/local/bin/bison
e fiz export PATH=/usr/local/bin:$PATH
antes ./configure
, mas não funciona; ainda há apenas erros sobre não ter bisão> 3,0 (o mesmo erro de antes de tentar mexer com bisão):
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.
O estranho é que apenas tentar executar o bison usa o binário correto.
$ bison -V
bison (GNU Bison) 3.7.6
Written by Robert Corbett and Richard Stallman.
...
$ which bison
/usr/local/bin/bison
Também tentei mexer configure.ac
um pouco no arquivo, mas o problema é que não sei bem o que estou fazendo ali. Editar o arquivo de configuração, executá-lo novamente autoconf
e usá-lo ./configure
ainda não funciona. Em última análise, minha pergunta é: como posso garantir ./configure
o uso do binário bisonte correto?
Responder1
Meu problema era que a bison
instalação estava ruim.
Compilei o bison a partir do código-fonte, em configure --prefix=/usr/local
vez de deixar o brew decidir onde colocar tudo e, em seguida, certifiquei-me de que o PATH estava correto ao usar configure
para gerar o makefile para a compilação do vinho, e funcionou.
O problema surgiu do script de configuração do wine apenas verificando o código de saída da execução do Bison em um arquivo vazio para verificar a versão. Como o bison estava falhando devido a uma instalação interrompida, ele estava fornecendo o código de saída do erro, fazendo com que o script de configuração acreditasse que o bison era uma versão insuficiente.