2012-05-24 19 views
6

Mientras se ejecuta un makefile en gcc 4.1.2 (Linux 5), que tiene el siguiente error"hacer: yacc: Comando no encontrado" después de instalar bisonte

make: yacc: Command not found 

buscando en Google, vine a saber que este el error se puede corregir instalando el generador de analizadores Bison-GNU. Pero incluso después de instalar Bison, obtengo el mismo error.

¿Cómo se puede resolver este error?

+0

¿En qué sistema operativo se encuentra? Suena como una distribución de Linux, pero no estoy seguro de cuál. Además, ese error es bastante autoexplicativo: ¿qué sucede cuando ejecutas 'whereis yacc'? – zebediah49

+0

la salida de whereis yacc es yacc: /usr/share/man/man1p/yacc.1p.gz – Blackforest

+0

Esa es una página man comprimida, no un ejecutable. – paxdiablo

Respuesta

7

Desde el aspecto de las cosas, su archivo MAKE está esperando que un ejecutable yacc esté disponible y o bien no lo está, o no está en su camino.

Desde bison se supone que es compatible con yacc por lo que la primera cosa que me gustaría probar sería:

alias yacc="bison" 

y vuelve a intentarlo. En mi configuración, /usr/bin/yacc es simplemente una secuencia de comandos que contiene:

#! /bin/sh 
exec '/usr/bin/bison' -y "[email protected]" 

Usted puede tratar de localizar a los yacc o bison ejecutables con el comando (sustituyendo bisontes de yacc si es necesario):

which yacc 

Pero probablemente esté en uno de los lugares estándar como /bin o /usr/bin.

+0

Sugeriría ver si 'bison' existe primero, pero sí, es bueno saberlo. – zebediah49

+0

si Bison existe. La salida del comando "which bison" es "/ usr/bin/bison".Pero incluso después de dar "alias yacc =" bison ", obtengo el mismo error. – Blackforest

+0

Entonces el alias probablemente esté desapareciendo, o está usando un shell que no tiene alias. Si' which yacc' no aparece como un ejecutable válido , crea tu propio ejecutable '/ usr/bin/yacc' siguiendo las líneas de la respuesta dada. Si _that_ no funciona, entonces tu archivo MAKE seguramente no verá'/usr/bin' cuando se está ejecutando – paxdiablo

9

Ejecute el siguiente comando en su terminal para instalar bison, yacc ejecutables y configuraciones. yacc viene junto con el bisonte

También es necesario byacc para una completa funcionalidad yacc

sudo apt-get install bison -y 
sudo apt-get install byacc -y 

Se trabajó para mí.

+0

Ubuntu 14.04 como instalado - tenía bison pero no byacc. Gracias por la propina . (Upvoted). – bshea

0

Me encontré con un problema similar en RHEL7.

encontrar dónde bisonte es:

$:which bison 

*/bin/bison* 

Crear enlace simbólico a partir de bisontes yacc:

sudo ln -s /bin/bison /bin/yacc 

Y eso debería resolver el problema.