Câu trả lời:
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.sovà libfl.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