다음 명령을 실행한 후:
g++ lex.yy.c -lfl
다음 오류가 발생합니다.
/usr/bin/ld: cannot find -lfl
어떻게 해결할 수 있나요?
답변1
lex.yy.c
기본 출력 파일 이름입니다.lex
, C(및 C++)용 어휘 분석기 전처리기입니다. 이것커넥터( )는 (동적으로 링크된 경우, 그렇지 않은 경우 정적으로 링크된 경우) ld
이름의 파일을 찾고 있습니다 . 생성된 어휘 분석기에 필요한 런타임 라이브러리입니다.libfl.so
libfl.a
유연한, lex 구현.
lex.yy.c
직접 생성 한 경우 flex
Flex가 올바르게 설치되었는지 확인하세요. 경로에 실행 파일을 포함하는 것 외에도 flex
라이브러리 검색 경로에 libfl.so
및 가 있는 libfl.a
경우 이를 포함해야 합니다( Flex가 시스템 패키지에서 제공되는지 여부에 따라 libfl_pic.a
일반적 /usr/lib
으로 또는 ). /usr/local/lib
Flex가 비표준 위치에 있는 경우 다음 명령을 사용하여 라이브러리 검색 경로를 지정합니다 -L
.
~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl
답변2
내 SciOs 배포판에 이 패키지를 설치하는 것이 flex-devel.x86_64
나에게 효과적이었습니다.