Câu trả lời:
lex.yy.c
là 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.a
nế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.c
tự tạo flex
, hãy kiểm tra xem Flex đã được cài đặt đúng chưa. Ngoài việc có flex
khả năng thực thi trong đường dẫn của bạn, bạn cần phải có libfl.so
và libfl.a
(và libfl_pic.a
nế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/lib
hoặ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