2016-06-18 8 views
1

flex, bison 및 Dev C++를 C : \에 올바르게 다운로드하고 설치했습니다. 그런 다음 명령 프롬프트에서 myfile.l을 컴파일하려고 시도했지만 오류가 발생합니다.Windows에서 lex 파일을 컴파일하는 방법은 무엇입니까?

flex: can't open myfile.l.

무엇이 문제입니까?

+1

아주 간단합니다. 현재 디렉토리에 myfile.l이라는 파일이 없습니다. 어쩌면 myfile.l.txt라고할까요? –

+0

예 myfile.l.txt이므로 myfile.l로 저장할 수 없습니다. .l 확장자로 저장하는 방법은 매우 익숙하고 검색했지만 적합한 솔루션을 얻지 못했습니다. 이제는 "Flex Windows"를 사용하여 파일을 .l 확장자로 저장할 수 있습니다. – TRuwandi

답변

1

나는 당신이 약간의 지시를 필요로하는 초보자라는 것을 당신의 질문에서 볼 수있다. 따라서 다음은 튜토리얼 스타일이다. 나는 네가 그 소리에 신경 쓰지 않기를 바란다. 많은 학생들이 처음 시작할 때와 같은 문제에 직면합니다. 플렉스에 대한 코드를 포함

파일, 들소 또는 컴파일러 GCC (또는 그램 ++)은 단지 텍스트 파일, 파일이 아닌 일부 특수 인코딩 된 형태입니다. 그들은 단지 하려나, 관례 something.ysomething.c 란 (또는 something.cpp) 이름이 지정됩니다. 우리가 원할 경우 something.txt 또는 심지어 something.l.txt이라고 부를 수 있습니다. 이름을 그대로 사용하는 이유는 이름 공간을 어지럽히 지 않고도 한 프로그램의 모든 구성 요소를 구별 할 수 있기 때문입니다. 우리는 프로젝트가 경우에 따라서, 플렉스 및 들소에서 수행 숙제, 우리는 기본 이름으로 단어 숙제를 사용하여 다음과 같은 파일 집합을 가질 수 있습니다

homework.l  <-- The lexer source file for flex created for the homework 
homework.y  <-- The parser source file for bison created for the homework 
homework.cpp <-- The C++ source file for g++ created for the homework 
homework.obj <-- The object file created by g++ 
homework.exe <-- The final windows executable created by g++ 

(다른 많은있을 것 파일도 있지만, 지금은 건너 뛸 것입니다.)

원본 파일은 텍스트 파일 형식이므로 텍스트 편집기로 만들 수 있습니다. 당신은 Dev C++ (텍스트 편집기, 컴파일러 및 디버거를 하나의 패키지로 결합한 IDE (Integrated Development Environment))를 사용하고 있다고 나타 냈습니다. 텍스트 편집기 부분은 Notepad, NotePad++, vim, emacs 또는 다른 수많은 편집기 도구 중 하나와 같은 다른 텍스트 편집기와 동일하게 작동합니다.

일반적으로 Windows의 텍스트 편집기 도구는 기본적으로 .txt의 텍스트 코드를 저장합니다. 여기에 이러한 파일을 저장하는 예 대화는 다음과 같습니다

image of notepad++ save as file browser

당신이 볼 수있는 나는 내가         저장         버튼을 눌러 SOlexer.l라고 내 파일을 저장 한 경우, 나는 의 접미사가있는 파일을 항상 만들어야하기 때문에 SOlexer.l.txt이라는 파일을 얻을 수 있습니다.

이제는 문제가되지 않습니다. 난 당신이 그랬던 것처럼, 플렉스를 호출하려고하는 경우 :

$ flex SOlexer.l 
flex: can't open SOlexer.l 

저도 같은 오류 메시지가 표시됩니다.그러나 난 그냥 사용 된 실제 파일 이름으로 플렉스를 호출 할 수 있습니다 그것은 작동합니다 :

$ flex SOlexer.l.txt 
$ 

을 다른 방법으로, 나는 파일 이름을 바꿀 수 있고, 그것을 사용 :

$ rename SOlexer.l.txt SOlexer.l 
$ flex SOlexer.l 
$ 

문제가 해결!

그러나 발견 한대로 처음에는 원하는 (더 편리한) 이름으로 파일을 만드는 것이 가장 좋습니다. 이 하나를 수행하면 파일을 저장할 때 단지 다음과 같이 메뉴에서 다른 선택을 할 수 있습니다. (* *) 우리는 모든 종류의

image of notepad++ save as file browser pull down

을 클릭하면 우리가하지 않고 파일을 만들 수 있습니다 .txt 접미사. 이것은 대부분의 유사한 도구에도 적용됩니다.

Windows에서 flex와 bison을 사용하는 데 어려움이있는 학생을 돕기 위해 series of video tutorials을 만들었습니다. 그들도 환영합니다.

결론적으로 flex 파일을 빌드하는 데 문제가 있지만 문제는 flex 또는 bison과 관련이 없지만 Windows 시스템에서 파일을 만들고 편집하는 방법을 배우는 간단한 초보자 문제입니다.

+0

대단히 감사합니다. – TRuwandi

관련 문제