왓콤 C/C++
1. 개요
왓콤 C/C++는 사이베이스에서 판매가 중단되었지만 오픈 왓콤 꾸러미로 무료로 제공되는 C/C++ 컴파일러이다. 이 컴파일러는 다양한 운영 체제를 지원하며, 1990년대 중반 둠, 디센트, 듀크 뉴켐 3D 등 DOS 기반 게임 개발에 활용되었다. 오픈 왓콤은 오픈 소스 라이선스를 따르며, 2010년 6월에 안정화 버전 1.9가 출시되었고, 2015년에는 64비트 호스트 지원 및 다양한 기능을 갖춘 베타 버전 2.0이 출시되었다.
이미지 준비중입니다.
| 저자 | 왓콤 |
|---|---|
| 개발자 | 사이베이스, SciTech Software |
| 최초 출시일 | 1988년 |
| 최신 안정화 버전 | 1.9 |
| 최신 안정화 버전 출시일 | 2010년 6월 2일 |
| 최신 미리보기 버전 | 2.0 |
| 최신 미리보기 버전 출시일 | 2024년 12월 4일 |
| 저장소 | GitHub 저장소 |
| 프로그래밍 언어 | C, C++ |
| 지원 운영체제 | DOS, Windows, OS/2, Linux |
| 크기 | 66–84 MB |
| 지원 플랫폼 | x86, IA-32, x86-64 |
| 장르 | 통합 개발 환경 |
| 라이선스 | 사이베이스 오픈 왓콤 공개 허가서 버전 1.0 |
| 웹사이트 | 오픈 왓콤 공식 웹사이트 |
-
C++ 컴파일러 -
GNU 컴파일러 모음
GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다. -
C++ 컴파일러 -
C++빌더
C++빌더는 델파이와 동일한 IDE를 사용하는 엠바카데로 테크놀로지스에서 개발한 C++ 통합 개발 환경이며, 윈도우, macOS, iOS, 안드로이드 등 다양한 플랫폼을 지원하고 VCL, FireMonkey, CLX와 같은 GUI 라이브러리를 제공한다. -
C 컴파일러 -
GNU 컴파일러 모음
GNU 컴파일러 모음(GCC)은 리처드 스톨먼이 1987년 처음 출시한 자유 소프트웨어 컴파일러 시스템으로, C, C++, Fortran, Ada, Go 등 다양한 프로그래밍 언어를 지원하며 여러 명령어 집합 아키텍처와 플랫폼에서 널리 사용된다. -
C 컴파일러 -
MinGW
MinGW는 윈도우에서 GNU 툴체인을 사용할 수 있게 해주는 프로젝트이며, MSYS를 통해 유닉스 셸 환경을 제공하고, C, C++, Objective-C 등 다양한 언어를 지원하며 윈도우 API를 직접 호출하여 호환성 계층 DLL을 요구하지 않는다.
2. 역사
사이베이스는 왓콤 C/C++ 컴파일러와 왓콤 포트란 컴파일러를 더 이상 판매하지 않지만, 이들은 오픈 왓콤 패키지로 무료로 제공되었다.
2005년 12월, 오픈 왓콤 C/C++ 1.4 버전이 출시되면서 NT 또는 OS/2 호스트 플랫폼에서 지원되는 리눅스 x86을 실험 대상으로 도입했다. 버려진 QNX 버전에 대한 코드는 있었지만, 컴파일에 필요한 라이브러리는 오픈 소스로 공개할 수 없었다.
2010년 6월에는 안정화 버전 1.9가 출시되었다.
포크된 버전 2.0 베타가 출시되었으며, 64비트 호스트(윈도우 및 리눅스) 지원, 내장 텍스트 편집기, 2단계 빌드 시스템, 그리고 DOS 버전의 긴 파일 이름(LFN) 지원이 추가되었다.
2.1. 출시 이력
사이베이스에서 더 이상 왓콤 C/C++ 컴파일러를 판매하지 않지만, 왓콤 C/C++ 컴파일러와 왓콤 포트란 컴파일러는 오픈 왓콤 패키지로 무료로 제공된다.
2005년 12월, 오픈 왓콤 C/C++ 1.4 버전이 출시되면서 NT 또는 OS/2 호스트 플랫폼에서 지원되는 리눅스 x86을 실험 대상으로 도입했다. 버려진 QNX 버전에 대한 코드도 있지만, 컴파일에 필요한 라이브러리는 오픈 소스로 공개할 수 없었다.
2010년 6월에는 안정화 버전 1.9가 출시되었다.
64 비트 호스트 (윈도우즈 및 리눅스), 내장 텍스트 편집기, 2 단계 구축 체제 및 긴 파일 이름 (LFN)을 지원하는 도스 버전을 지원하는 분기 버전 2.0 베타가 출시되었다. 오픈 왓콤 위키에는 포괄적인 기록이 있다.
| | 제품명 || 참고 | ||
|---|---|---|
| 1984 | S/370용 워털루 C | |
| 1985 | 현재 코드 생성기 코드베이스 작업 시작됨. | |
| 1988 | Watcom C 6.0 | |
| 1989 | Watcom C 7.0 | |
| 1989 | Watcom C 7.0/386 | |
| 1990 | Watcom C 8.0 | |
| 1990 | Watcom C 8.0/386 | |
| 1991 | Watcom C 8.5 | |
| 1991 | Watcom C 8.5/386 | |
| 1992 | Watcom C 9.0 | |
| 1992 | Watcom C 9.0/386 | |
| 1993 | Watcom C 9.01/386 | |
| 1993 | Watcom C/C++ 9.5 | |
| 1993 | Watcom C/C++ 9.5/386 | |
| 1994 | Watcom C/C++ 10.0 | |
| 1995 | Watcom C/C++ 10.5 | |
| 1996 | Watcom C/C++ 10.6 | |
| 1997 | Watcom C/C++ 11.0 | |
| 1998 | Watcom C/C++ 11.0B | |
| 1999 | 사이베이스가 Watcom C/C++ 11.0 용 수명종료를 통지 | |
| 2000 | 사이베이스가 왓콤 도구의 오픈 소스화를 발표 | |
| 2001-09-27 | Watcom C/C++ 11.0c Beta | |
| 2002-12-21 | Watcom C/C++ 11.0c | |
| 2003-01-28 | Open Watcom 1.0 | |
| 2003-08-12 | Open Watcom 1.1 | |
| 2004-01-07 | Open Watcom 1.2 | |
| 2004-08-03 | Open Watcom 1.3 | |
| 2005-12-14 | Open Watcom 1.4 | |
| 2006-04-26 | Open Watcom 1.5 | |
| 2006-12-15 | Open Watcom 1.6 | |
| 2007-08-18 | Open Watcom 1.7 | |
| 2007-10-23 | Open Watcom 1.7a | |
| 2009-02-21 | Open Watcom 1.8 | |
| 2010-06-02 | Open Watcom 1.9 | 현재의 공식 버전 |
| 2015-04-02 | Open Watcom 2.0 Beta | 깃허브 V2 분기판이다. 오픈 왓콤이 64 비트 호스트 (윈도우즈 및 리눅스), 자원 컴파일러 및 자원 편집기 지원 WIN64 실행 파일, 내장 텍스트 편집기, 2 단계 빌드 시스템, 도구의 도스 버전은 긴 파일 이름 (LFN), 다양한 수정 사항을 지원한다. |
3. 라이선스
오픈 소스 이니셔티브는 오픈 소스로 허가서를 승인했지만 데비안, 페도라 및 자유 소프트웨어 재단은 "해당 소프트웨어를 배포할 때마다 소스 코드를 공개적으로 게시해야 하며 배포에는 많은 종류의 비공개 사용이 포함되도록 정의되어있다."는 이유로 거부했다.
4. 설계 및 특징
컴파일러는 MS-DOS, OS/2, 윈도우, 리눅스 운영체제에서 작동하고 실행 가능 코드를 생성 할 수 있다. Novell NetWare용 NLM 대상도 지원한다. x86, PowerPC및 기타 프로세서에서 실행되는 리눅스 및 현대의 BSD (예: FreeBSD) 운영 체제로 대상을 확장하는 작업이 진행 중이다.
이 코드는 이식성이 있으며 GCC 또는 LCC와 같은 다른 많은 오픈 소스 컴파일러 프로젝트와 마찬가지로 컴파일러 백엔드 (코드 생성기)는 대상을 다시 지정할 수 있다.
오픈 왓콤의 구문은 마이크로소프트와 볼랜드와 같은 다른 컴파일러가 도입한 여러 가지 규칙을 지원한다. 예를 들어 "asm"태그의 앞에 오는 밑줄의 수와 관련된 다른 규칙을 포함한다. 표준 호환 C 또는 C++가 아닌 다른 컴파일러 용으로 작성된 코드는 종종 Watcom 컴파일러로 컴파일된다.
컴파일러는 C89/C90 표준을 기본적으로 지원한다.
오픈 왓콤은 C99 표준과의 부분 호환성을 지원한다. 가장 일반적으로 사용되는 표준 부분을 구현한다. 그러나 문서화되지 않은 명령 줄 스위치 "-za99"를 통해서만 사용할 수 있다. 3가지 C99 기능은 pre-v1.0 : C++ 스타일 주석 (//), 유연한 배열 멤버, 열거형 선언에 허용되는 후행 쉼표로 C90 확장으로 번들되었다.
컴파일러는 현재 새로운 주요 C11 기능을 지원하지 않지만, C 라이브러리에는 "Safe C" 기능이 포함되어 있다. 이는 C11의 "경계 검사 인터페이스 (Annex K)"로 알려진 ISO/IEC TR 24731-1에 명시되어있다. 일부 함수 이름 예제는 strcpy_s(), memcpy_s(), printf_s()이다. 이 라이브러리는 2006년 4월에 오픈 왓콤 1.5와 함께 출시되었다.
5. 활용 사례
1990년대 중반 둠, 디센트, 듀크 뉴켐 3D, 라이즈 오브 더 트라이어드(ROTT) 등 기술적으로 야심찬 MS-DOS 컴퓨터 게임 일부는 왓콤 컴파일러와 DOS/4GW 보호 모드 확장자를 사용하는 왓콤 C/C++를 사용하여 제작되었다.
2015년 복고풍 도시 난동을 MS-DOS로 이식하는 데 사용되었다.
버추얼 박스는 바이오스를 컴파일하는 데 사용된다.
7. 참고 사항
* 오픈 왓콤 어셈블러