왓콤 C/C++
| 파일:Watcom logo.png | |
| 원저자 | 왓콤 |
|---|---|
| 개발자 | 사이베이스, SciTech Software |
| 발표일 | 2003년 1월 8일 |
| 안정화 버전 | 1.9
/ 2010년 6월 2일 |
| 미리보기 버전 | 2.0
/ 2015년 4월 2일 |
| 저장소 |
|
| 프로그래밍 언어 | C, C++, FORTRAN |
| 엔진 | |
| 플랫폼 | IA-32, x86-64 |
| 크기 | 66–84 MB |
| 종류 | 통합 개발 환경 |
| 라이선스 | 사이베이스 오픈 왓콤 공개 허가서 버전 1.0 |
| 웹사이트 | openwatcom |
왓콤 C/C++(Watcom C/C++, 현재는 오픈 왓콤 C/C++)은 왓콤 국제 기업의 C, C++, Fortran 프로그래밍 언어용 통합 개발 환경 (IDE)제품이다. 왓콤 C/C++은 단종될 때까지 상업적인 제품이었으며, 이후에는 오픈 왓콤 C/C++이라는 이름으로 프리웨어로 출시되었다. x86, IA-32, x86-64 호환하는 프로세서를 기반으로 하는 MS-DOS, OS/2, 윈도우, 리눅스 운영 체제용 코드를 개발하고 디버깅하기 위한 도구를 제공한다.
역사
사이베이스에서는 더 이상 판매하지는 않지만, 왓콤 C/C ++ 컴파일러와 왓콤 포트란 컴파일러는 오픈 왓콤 꾸러미로 무료로 제공된다.
2005년 12월의 오픈 왓콤 C/C++ 1.4 버전 출시판은 NT 또는 OS/2 호스트 플랫폼에서 지원되는 리눅스 x86을 실험 대상으로 도입했다. 버려진 QNX 버전에 대한 코드가 있지만 컴파일에 필요한 라이브러리를 오픈 소스로 공개 할 수 없다.[출처 필요]
안정화 버전 1.9는 2010년 6월 출시되었다.[1]
64 비트 호스트 (윈도우즈 및 리눅스), 내장 텍스트 편집기, 2 단계 구축 체제 및 긴 파일 이름 (LFN)을 지원하는 도스 버전을 지원하는 분기 버전 2.0 베타가 출시되었다.
출시 이력
오픈 왓콤 위키에는 포괄적인 기록[2]이 있다.
| 날짜 | 제품명 | 참고 |
|---|---|---|
| 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 |
|
| 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, FreeDOS), OS/2, 윈도우즈, 리눅스 운영체제에서 작동하고 실행 가능 코드를 생성 할 수 있다. Novell NetWare용 NLM 대상도 지원한다. x86, PowerPC및 기타 프로세서에서 실행되는 리눅스 및 현대의 BSD (예: FreeBSD) 운영 체제로 대상을 확장하는 작업이 진행 중이다.
이 코드는 이식성이 있으며 GCC 또는 LCC와 같은 다른 많은 오픈 소스 컴파일러 프로젝트와 마찬가지로 컴파일러 백엔드 (코드 생성기)는 대상을 다시 지정할 수 있다.
사용
1990년대 중반에 둠,[2] 디센트,[2] 듀크 뉴켐 3D,[2], 와 라이즈 오브 더 트라이어드[5]와 같은 기술적으로 야심적인 MS-DOS 컴퓨터 게임 중 일부는 왓콤 컴파일러 와 DOS/4GW 보호 모드 확장자를 사용하는 ROTT와 같은 왓콤 C/C++를 사용하여 제작되었다.
2015년에 복고풍 도시 난동을 MS-DOS로 이식하는 데 사용되었다.[6]
바이오스를 컴파일 하기 위해 버추얼 박스가 사용된다.[7]
변형
깃허브[8]에는 오픈 왓콤 V2의 비공식 포크[9]가 있다. 16 비트 도스 CRT 라이브러리 시작의 변형이 WASM으로 작성되었다.[10]
호환성
오픈 왓콤의 구문은 마이크로소프트것과 볼랜드것과 같은 다른 컴파일러가 도입한 여러 가지 규칙을 지원한다. 예를 들어 "asm"태그의 앞에 오는 밑줄의 수와 관련된 다른 규칙을 포함한다. 표준 호환 C 또는 C++가 아닌 다른 컴파일러 용으로 작성된 코드는 종종 Watcom 컴파일러로 컴파일된다.
컴파일러는 C89/C90 표준을 기본적으로 지원한다.
오픈 왓콤은 C99 표준과의 부분 호환성을 지원한다. 가장 일반적으로 사용되는 표준 부분을 구현한다. 그러나 문서화되지 않은 명령 줄 스위치 "-za99"를 통해서만 사용할 수 있다. 3 가지 C99 기능은 pre-v1.0 : C ++ 스타일 주석 (//), 유연한 배열 멤버, 열거 형 선언에 허용되는 후행 쉼표로 C90 확장으로 번들되었다.[11]
컴파일러는 현재 새로운 주요 C11 기능을 지원하지 않지만, C 라이브러리에는 "Safe C"기능이 포함되어 있다. 이는 C11의 "경계 검사 인터페이스 (Annex K)"로 알려진 ISO/IEC TR 24731-1[12][13]에 명시되어있다. 일부 함수 이름 예제는 strcpy_s(), memcpy_s(), printf_s()이다.[14] 이 라이브러리는 2006년 4월에 오픈 왓콤 1.5와 함께 출시되었다.
참고 사항
각주
- ↑ “Latest Release (June 2010) - Open Watcom”. OpenWatcom.org wiki. 2015년 3월 17일에 원본 문서에서 보존된 문서. 2015년 3월 17일에 확인함.
- ↑ 가 나 다 라 History - Open Watcom 보관됨 2006-10-20 - 웨이백 머신. OpenWatcom.com wiki.
- ↑ List of main differences of v1.9 to v2.0 Beta.
- ↑ Free Software Foundation. “Various Licenses and Comments about Them”. 《GNU Operating System》. 2014년 12월 23일에 확인함.
- ↑ “RotT was written in Watcom C++ v10.0 with the Rational Systems DOS/4GW extender”.
- ↑ “How 5 years of burning ambition brought Retro City Rampage to DOS”. Gamasutra.
- ↑ “#12011 (Compiling BIOS requires Open Watcom compiler)? Oracle VM VirtualBox”. 《www.virtualbox.org》. 2017년 6월 17일에 확인함.
- ↑ “Open Watcom V2 Fork Project on GitHub”.
- ↑ “Open Watcom V2 Fork”.
- ↑ “pcdosasm.zip archive”. 2010년 7월 27일. 2014년 2월 10일에 확인함.
Modified Open Watcom C/C++ DOS 16-bit ..\STARTUP\DOS\CSTRT086.ASM code
- ↑ “C99 compliance in Open Watcom”. 2015년 5월 3일에 원본 문서에서 보존된 문서. 2015년 9월 25일에 확인함.
- ↑ ISO/IEC TR 24731-1; Extension to the C Library, Part 1: Bounds-checking interfaces.
- ↑ WG14 N1969 ? "Updated Field Experience With Annex K ? Bounds Checking Interfaces", Carlos O'Donell, Martin Sebor
- ↑ Open Watcom Safer C Library
외부 링크
- Open Watcom - 공식 웹사이트, 공식 사이트, (“보관된 사본”. 2015년 3월 17일에 원본 문서에서 보존된 문서. 2018년 3월 1일에 확인함.)
- 오픈 왓콤 V1.9 실행파일 내려받기[깨진 링크(과거 내용 찾기)]
- (영어) 오픈 왓콤 V2 분기판 - 깃허브
- 오픈 왓콤 V2 분기판 실행파일 내려받기
- Paul Hsieh. (2005년 5월 8일). “The WATCOM C/C++ Programmer’s FAQ”. 2008년 10월 7일에 확인함.
- Rick Grehan (October 1994). “Watcom C/C++ Gets a New Face”. 《BYTE》 19 (10): 111. 1997년 7월 12일에 원본 문서에서 보존된 문서. 2011년 5월 14일에 확인함.
모듈:Authority_control 159번째 줄에서 Lua 오류: attempt to index field 'wikibase' (a nil value).
- 스크립트 오류가 있는 문서
- 웹아카이브 틀 웨이백 링크
- 잘못된 파일 링크가 포함된 문서
- 출처가 필요한 글/2018년 3월
- 위키데이터에 없는 공식 웹사이트
- 위키데이터 속성 P18을 사용하는 문서
- 위키데이터 속성 P41을 사용하는 문서
- 위키데이터 속성 P94를 사용하는 문서
- 위키데이터 속성 P117을 사용하는 문서
- 위키데이터 속성 P154를 사용하는 문서
- 위키데이터 속성 P213을 사용하는 문서
- 위키데이터 속성 P227을 사용하는 문서
- 위키데이터 속성 P242를 사용하는 문서
- 위키데이터 속성 P244를 사용하는 문서
- 위키데이터 속성 P245를 사용하는 문서
- 위키데이터 속성 P268을 사용하는 문서
- 위키데이터 속성 P269를 사용하는 문서
- 위키데이터 속성 P271을 사용하는 문서
- 위키데이터 속성 P347을 사용하는 문서
- 위키데이터 속성 P349를 사용하는 문서
- 위키데이터 속성 P350을 사용하는 문서
- 위키데이터 속성 P373을 사용하는 문서
- 위키데이터 속성 P380을 사용하는 문서
- 위키데이터 속성 P396을 사용하는 문서
- 위키데이터 속성 P409를 사용하는 문서
- 위키데이터 속성 P428을 사용하는 문서
- 위키데이터 속성 P434를 사용하는 문서
- 위키데이터 속성 P435를 사용하는 문서
- 위키데이터 속성 P436을 사용하는 문서
- 위키데이터 속성 P454를 사용하는 문서
- 위키데이터 속성 P496을 사용하는 문서
- 위키데이터 속성 P549를 사용하는 문서
- 위키데이터 속성 P650을 사용하는 문서
- 위키데이터 속성 P651을 사용하는 문서
- 위키데이터 속성 P691을 사용하는 문서
- 위키데이터 속성 P716을 사용하는 문서
- 위키데이터 속성 P781을 사용하는 문서
- 위키데이터 속성 P791을 사용하는 문서
- 위키데이터 속성 P864를 사용하는 문서
- 위키데이터 속성 P865를 사용하는 문서
- 위키데이터 속성 P886을 사용하는 문서
- 위키데이터 속성 P902를 사용하는 문서
- 위키데이터 속성 P906을 사용하는 문서
- 위키데이터 속성 P947을 사용하는 문서
- 위키데이터 속성 P950을 사용하는 문서
- 위키데이터 속성 P966을 사용하는 문서
- 위키데이터 속성 P982를 사용하는 문서
- 위키데이터 속성 P1003을 사용하는 문서
- 위키데이터 속성 P1004를 사용하는 문서
- 위키데이터 속성 P1005를 사용하는 문서
- 위키데이터 속성 P1006을 사용하는 문서
- 위키데이터 속성 P1015를 사용하는 문서
- 위키데이터 속성 P1045를 사용하는 문서
- 위키데이터 속성 P1048을 사용하는 문서
- 위키데이터 속성 P1053을 사용하는 문서
- 위키데이터 속성 P1146을 사용하는 문서
- 위키데이터 속성 P1153을 사용하는 문서
- 위키데이터 속성 P1157을 사용하는 문서
- 위키데이터 속성 P1186을 사용하는 문서
- 위키데이터 속성 P1225를 사용하는 문서
- 위키데이터 속성 P1248을 사용하는 문서
- 위키데이터 속성 P1273을 사용하는 문서
- 위키데이터 속성 P1315를 사용하는 문서
- 위키데이터 속성 P1323을 사용하는 문서
- 위키데이터 속성 P1330을 사용하는 문서
- 위키데이터 속성 P1362를 사용하는 문서
- 위키데이터 속성 P1368을 사용하는 문서
- 위키데이터 속성 P1375를 사용하는 문서
- 위키데이터 속성 P1407을 사용하는 문서
- 위키데이터 속성 P1556을 사용하는 문서
- 위키데이터 속성 P1584를 사용하는 문서
- 위키데이터 속성 P1695를 사용하는 문서
- 위키데이터 속성 P1707을 사용하는 문서
- 위키데이터 속성 P1736을 사용하는 문서
- 위키데이터 속성 P1886을 사용하는 문서
- 위키데이터 속성 P1890을 사용하는 문서
- 위키데이터 속성 P1907을 사용하는 문서
- 위키데이터 속성 P1908을 사용하는 문서
- 위키데이터 속성 P1960을 사용하는 문서
- 위키데이터 속성 P1986을 사용하는 문서
- 위키데이터 속성 P2041을 사용하는 문서
- 위키데이터 속성 P2163을 사용하는 문서
- 위키데이터 속성 P2174를 사용하는 문서
- 위키데이터 속성 P2268을 사용하는 문서
- 위키데이터 속성 P2349를 사용하는 문서
- 위키데이터 속성 P2418을 사용하는 문서
- 위키데이터 속성 P2456을 사용하는 문서
- 위키데이터 속성 P2484를 사용하는 문서
- 위키데이터 속성 P2558을 사용하는 문서
- 위키데이터 속성 P2750을 사용하는 문서
- 위키데이터 속성 P2980을 사용하는 문서
- 위키데이터 속성 P3223을 사용하는 문서
- 위키데이터 속성 P3233을 사용하는 문서
- 위키데이터 속성 P3348을 사용하는 문서
- 위키데이터 속성 P3372를 사용하는 문서
- 위키데이터 속성 P3407을 사용하는 문서
- 위키데이터 속성 P3430을 사용하는 문서
- 위키데이터 속성 P3544를 사용하는 문서
- 위키데이터 속성 P3562를 사용하는 문서
- 위키데이터 속성 P3563을 사용하는 문서
- 위키데이터 속성 P3601을 사용하는 문서
- 위키데이터 속성 P3723을 사용하는 문서
- 위키데이터 속성 P3788을 사용하는 문서
- 위키데이터 속성 P3829를 사용하는 문서
- 위키데이터 속성 P3863을 사용하는 문서
- 위키데이터 속성 P3920을 사용하는 문서
- 위키데이터 속성 P3993을 사용하는 문서
- 위키데이터 속성 P4038을 사용하는 문서
- 위키데이터 속성 P4055를 사용하는 문서
- 위키데이터 속성 P4114를 사용하는 문서
- 위키데이터 속성 P4143을 사용하는 문서
- 위키데이터 속성 P4186을 사용하는 문서
- 위키데이터 속성 P4423을 사용하는 문서
- 위키데이터 속성 P4457을 사용하는 문서
- 위키데이터 속성 P4534를 사용하는 문서
- 위키데이터 속성 P4535를 사용하는 문서
- 위키데이터 속성 P4581을 사용하는 문서
- 위키데이터 속성 P4613을 사용하는 문서
- 위키데이터 속성 P4955를 사용하는 문서
- 위키데이터 속성 P5034를 사용하는 문서
- 위키데이터 속성 P5226을 사용하는 문서
- 위키데이터 속성 P5288을 사용하는 문서
- 위키데이터 속성 P5302를 사용하는 문서
- 위키데이터 속성 P5321을 사용하는 문서
- 위키데이터 속성 P5368을 사용하는 문서
- 위키데이터 속성 P5504를 사용하는 문서
- 위키데이터 속성 P5587을 사용하는 문서
- 위키데이터 속성 P5736을 사용하는 문서
- 위키데이터 속성 P5818을 사용하는 문서
- 위키데이터 속성 P6213을 사용하는 문서
- 위키데이터 속성 P6734를 사용하는 문서
- 위키데이터 속성 P6792를 사용하는 문서
- 위키데이터 속성 P6804를 사용하는 문서
- 위키데이터 속성 P6829를 사용하는 문서
- 위키데이터 속성 P7293을 사용하는 문서
- 위키데이터 속성 P7303을 사용하는 문서
- 위키데이터 속성 P7314를 사용하는 문서
- 위키데이터 속성 P7902를 사용하는 문서
- 위키데이터 속성 P8034를 사용하는 문서
- 위키데이터 속성 P8189를 사용하는 문서
- 위키데이터 속성 P8381을 사용하는 문서
- 위키데이터 속성 P8671을 사용하는 문서
- 위키데이터 속성 P8980을 사용하는 문서
- 위키데이터 속성 P9070을 사용하는 문서
- 위키데이터 속성 P9692를 사용하는 문서
- 위키데이터 속성 P9725를 사용하는 문서
- 위키데이터 속성 P9984를 사용하는 문서
- 위키데이터 속성 P10020을 사용하는 문서
- 위키데이터 속성 P10299를 사용하는 문서
- 위키데이터 속성 P10608을 사용하는 문서
- 위키데이터 속성 P10832를 사용하는 문서
- 위키데이터 속성 P11249를 사용하는 문서
- 위키데이터 속성 P11646을 사용하는 문서
- 위키데이터 속성 P11729를 사용하는 문서
- 위키데이터 속성 P12204를 사용하는 문서
- 위키데이터 속성 P12362를 사용하는 문서
- 위키데이터 속성 P12754를 사용하는 문서
- 위키데이터 속성 P13049를 사용하는 문서
- C++ 컴파일러
- C 컴파일러