2016-09-19 2 views
0

실제 프로젝트에서 사용하기 전에 flex로 약간의 테스트와 연주를하고 있지만, 문제가 발생했습니다."<FlexLexer.h>을 찾을 수 없습니다."C++ 모드에서만 발생합니다.

저는 Termux라는 이름의 Linux 에뮬레이터를 사용하여 Android에서 작업하고 있습니다. flex를 설치하고 각각 $ apt install flex$ apt install clang을 실행합니다.

C에 대해 flex 코드를 작성하고 $ flex filename으로 처리 한 다음 $ gcc -lfl lex.yy.c으로 컴파일하면 모든 것이 컴파일되고 이진 파일이 완벽하게 작동한다는 것을 알았습니다. 나는 C에 대한 플렉스 코드를 작성하는 경우

는 그러나 ++ (즉, C++ 기능 만 사용) $ flex -+ filename으로 처리를하고 $ g++ -lfl lex.yy.cc로 컴파일, 컴파일시 에러가 파일 FlexLexer.h

#include <FlexLexer.h> 
포함한다는 튀어

찾을 수 없습니다.

왜 C++을 사용하는 경우에만 발생합니까? C++에서 실제로 필요하기 때문에 에뮬레이터를 사용하여 Android에서 작업한다는 점을 염두에두고이 문제를 어떻게 해결할 수 있습니까?

+0

현재 FlexLexer.h는 어디에 있습니까? 어떤 디렉토리 ?? – Techidiot

+0

@Tchidiot 나는 정말로 모른다. 앞에서 말했듯이'$ apt install flex '로 설치했기 때문에'/ data'처럼 정상적으로 접근 할 수없는 디렉토리에있을 것입니다. – user6245072

+0

라이브러리를 참조하는 파일'gcc lex.yy.c -lfl' 또는'g ++ lex.yy.cc -lfl'의 뒤에서'-l' 옵션 *을 반드시 써야합니다. 나는 항상'-Wall'을 사용하고 실행 파일을'a.out'에 두는 대신 명시 적 출력 파일을'-o executable-name'으로 지정하는 것을 권장합니다. – rici

답변

1

이것은 Termux의 flex 패키지에있는 버그이며 수정되었습니다. apt update && apt upgrade을 실행하여 FlexLexer.h을 포함하는 업데이트 된 패키지를 얻습니다.

+0

나는 실제 창조자가 anser에게 내 질문을 결코 기대하지 않았다. 고마워요! 어쨌든'termux' 태그가없는 이유는 무엇입니까? – user6245072