실제 프로젝트에서 사용하기 전에 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에서 작업한다는 점을 염두에두고이 문제를 어떻게 해결할 수 있습니까?
현재 FlexLexer.h는 어디에 있습니까? 어떤 디렉토리 ?? – Techidiot
@Tchidiot 나는 정말로 모른다. 앞에서 말했듯이'$ apt install flex '로 설치했기 때문에'/ data'처럼 정상적으로 접근 할 수없는 디렉토리에있을 것입니다. – user6245072
라이브러리를 참조하는 파일'gcc lex.yy.c -lfl' 또는'g ++ lex.yy.cc -lfl'의 뒤에서'-l' 옵션 *을 반드시 써야합니다. 나는 항상'-Wall'을 사용하고 실행 파일을'a.out'에 두는 대신 명시 적 출력 파일을'-o executable-name'으로 지정하는 것을 권장합니다. – rici