/ usr / bin / ld: không thể tìm thấy -lfl


8

Sau khi chạy lệnh sau:

g++ lex.yy.c -lfl

Tôi nhận được lỗi sau đây:

/usr/bin/ld: cannot find -lfl

Làm thế nào tôi có thể giải quyết nó?


1
Phân phối / HĐH nào bạn đang sử dụng? Làm thế nào bạn cài đặt flex (nếu đó là những gì bạn đang sử dụng)?
Mat

Câu trả lời:


9

lex.yy.clà tên tệp đầu ra mặc định cho lex, bộ tiền xử lý phân tích từ vựng cho C (và C ++). Trình liên kết ( ld) đang tìm kiếm một tệp có tên libfl.so(nếu liên kết động; nó sẽ là libfl.anếu liên kết tĩnh). Đây là thư viện thời gian chạy được yêu cầu bởi các từ vựng được tạo bởi Flex , một triển khai lex.

Nếu bạn lex.yy.ctự tạo flex, hãy kiểm tra xem Flex đã được cài đặt đúng chưa. Ngoài việc có flexkhả năng thực thi trong đường dẫn của bạn, bạn cần phải có libfl.solibfl.a(và libfl_pic.anếu nó tồn tại) trong đường dẫn tìm kiếm thư viện của bạn (thông thường /usr/libhoặc /usr/local/lib, tùy thuộc vào việc Flex có đến từ gói hệ thống hay không). Nếu bạn có Flex ở một vị trí không chuẩn, chỉ định đường dẫn tìm kiếm thư viện với -L:

~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl

4
cài đặt gói flex-static đã giải quyết vấn đề
NPK

Mint 19.1, cài đặt flex-old giúp.
Hạo Cai

3

Cài đặt flex-devel.x86_64gói trong bản phân phối SciO của tôi làm việc cho tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.