목록flex (3)
살아가는 이야기
지난 글에서 컴파일러 개발을 위해 MinGW를 설치하는 방법을 알아보았다. 설치 과정에서도 엿볼 수 있었지만 MinGW에도 이전 버전의 msys가 포함되어 있다. 그러나 msys를 사용하려면 아무래도 패키지 관리자 pacman이 지원되는 최신 msys2를 설치하는 것이 더 좋다. 이 글에서는 msys2를 설치하는 방법을 살펴본다. 1. msys2 다운로드 다음 페이지에서 msys2 설치 파일을 다운로드한다. https://www.msys2.org/ 이 글을 쓰는 2021년 9월 현재, 설치 파일 이름은 msys2-x86_64-20210725.exe이다. 2. 설치 파일 실행 다운로드한 설치 파일을 더블클릭하여 프로그램 설치를 시작한다. Next 버튼을 누르면 설치 위치를 선택하라는 창이 나타나는데, 편한..
MinGW는 Windows에서 GCC를 사용할 수 있도록 하는 프로그램이다. 가상기계나 Cygwin보다 가벼우면서도 필요한 프로그램을 포함하고 있기 때문에 저사양의 컴퓨터에서 GCC만 사용하고 싶을 때 설치하면 된다. 여기에 추가로 몇 가지 옵션만 더하면 컴파일러 개발에 필요한 flex와 bison도 함께 설치할 수 있다. 1. MinGW 다운로드 및 설치 다음 위치에서 MinGW를 다운로드한다. https://sourceforge.net/projects/mingw/ 64비트 OS라면 MinGW-64를 설치해야 하는 것 아닌가 하는 의구심이 들겠지만, MinGW-64는 패키지 선택 기능이 없으므로 MinGW를 설치하자. 다운로드가 완료되면 mingw-get-setup.exe를 실행한다. Install 버..
Bison이라는 컴파일러 제작 도구가 있다. Yacc의 GNU 버전인데 -dy 옵션을 주면 Yacc과 같은 방식으로 동작한다. 그런데 사용자 정의 타입에 대해 다음과 같은 오류가 나오는 경우가 있다.error: unknown type name 타입이름여기서 "타입이름"은 사용자가 나름 정의한 타입으로서 통상 헤더파일에 정의되어 있다. 이 헤더파일을 type.h라고 하자. 분명 type.h에서 "타입이름"을 정의했고 이것을 다음과 같이 Bison 입력 파일에 명시했는데도 이런 오류가 나오는 경우가 있다.%{ // Bison input #include #include "type.h" %}원인은 Bison이 아니고 Flex 입력이다. 위와 같이 정의해 둔 경우에 bison -dy 옵션으로 y.tab.h를 자동..