2012-05-24 26 views
6

Trong khi chạy một makefile trong gcc 4.1.2 (linux 5), tôi đã nhận lỗi sau"thực hiện: yacc: không tìm thấy Command" sau khi cài đặt Bison

make: yacc: Command not found 

Bởi googling, tôi đến để biết rằng đây lỗi có thể được sửa chữa bằng cách cài đặt trình tạo phân tích cú pháp Bison-GNU. Nhưng ngay cả sau khi cài đặt Bison, tôi cũng gặp lỗi tương tự.

Lỗi này có thể được giải quyết như thế nào?

+0

Bạn thuộc hệ điều hành nào? Âm thanh như một số distro linux, nhưng tôi không chắc chắn đó. Ngoài ra, lỗi đó là khá tự giải thích: điều gì sẽ xảy ra khi bạn chạy 'whereis yacc'? – zebediah49

+0

đầu ra của whereis yacc là yacc: /usr/share/man/man1p/yacc.1p.gz – Blackforest

+0

Đó là trang người nén, không phải là tệp thực thi. – paxdiablo

Trả lời

7

Từ giao diện của mọi thứ, makefile của bạn đang mong đợi một tệp thực thi yacc khả dụng và không có hoặc không có trên đường dẫn của bạn.

Kể từ bison được coi là tương thích với yacc do đó, điều đầu tiên tôi sẽ cố gắng sẽ là:

alias yacc="bison" 

và thử lại. Vào thiết lập của tôi, /usr/bin/yacc chỉ đơn giản là một kịch bản có chứa:

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

Bạn có thể cố gắng xác định vị trí yacc hoặc bison thực thi với lệnh (thay thế bò rừng cho yacc nếu cần thiết):

which yacc 

Nhưng họ có thể ở một trong những địa điểm tiêu chuẩn như /bin hoặc /usr/bin.

+0

Tôi sẽ đề nghị xem nếu 'bison' tồn tại trước, nhưng có, tốt để biết. – zebediah49

+0

yes Bison tồn tại. Đầu ra của lệnh "bison" là "/ usr/bin/bison".Nhưng ngay cả sau khi đưa ra "bí danh yacc =" bison ", tôi nhận được cùng một lỗi. – Blackforest

+0

Sau đó, bí danh có thể biến mất hoặc đang sử dụng một trình bao không có bí danh. Nếu' mà yacc' không bật lên một tệp thực thi hợp lệ , tạo tập tin thực thi '/ usr/bin/yacc' của riêng bạn dọc theo dòng của câu lệnh được đưa ra trong câu trả lời.Nếu _that_ không hoạt động thì makefile của bạn gần như chắc chắn không thấy'/usr/bin' khi nó đang chạy. – paxdiablo

9

Chạy lệnh sau trên thiết bị đầu cuối của bạn để cài đặt bison, yacc thực thi và cấu hình. yacc đi kèm cùng với bò rừng bizon

Ngoài ra bạn cần byacc cho một đầy đủ chức năng yacc

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

Nó làm việc cho tôi.

+0

Ubuntu 14.04 được cài đặt - có bison nhưng không phải là byacc. (Upvoted). – bshea

0

Tôi đã gặp sự cố tương tự trên RHEL7.

Tìm nơi bò rừng là:

$:which bison 

*/bin/bison* 

Tạo liên kết tượng trưng cho bò rừng từ yacc:

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

Và rằng nên giải quyết vấn đề.