최소 GW

MinGW
최소 GW
원저작자콜린 피터스
개발자MinGW 프로젝트
초기 릴리즈1998년 7월 1일, 24년 전(1998-07-01)
안정된 릴리스
GNU BinUtils—2.32-1, Installation Manager—0.6.3, WSL—5.2.1[1] / 2019년 2월 11일, 3년 전(2019-02-11)
기입처C, C++
운영 체제Microsoft Windows, Unix 유사(크로스 컴파일러)
유형컴파일러
면허증.퍼블릭 도메인(헤더), GNU General Public License(컴파일러 및 툴 체인)
웹 사이트osdn.net/projects/mingw

MinGW(이전의 mingw32)는, Microsoft Windows 애플리케이션을 작성하기 위한 프리 오픈 소스 소프트웨어 개발 환경입니다.

MinGW에는 GNU 컴파일러 컬렉션(GCC), GNU Binutils for Windows(어셈블러, 링커, 아카이브 매니저), Windows API, GNU 프로젝트의 GNU 디버거의 Windows 네이티브 빌드 및 기타 유틸리티를 자유롭게 배포할 수 있는 Windows 고유 헤더 파일 세트 및 정적 Import 라이브러리가 포함되어 있습니다.

MinGW는 서드파티제의 C 런타임 다이내믹 링크 라이브러리(DLL) 파일에 의존하지 않으며 런타임 라이브러리는 GNU General Public License(GPL)를 사용하여 배포되지 않으므로 GPL 라이브러리가 프로그램 [2]내에서 사용되지 않는 한 생성된 프로그램과 함께 소스 코드를 배포할 필요가 없습니다.

MinGW는 네이티브 Microsoft Windows 플랫폼에서 실행하거나 Linux(또는 다른 Unix)에서 크로스호스트 하거나 Cygwin에서 "크로스 네이티브" 실행할 수 있습니다.MinGW에서 생성된 프로그램은 32비트 실행 파일이지만 32비트 버전과 64비트 버전의 Windows에서 모두 사용할 수 있습니다.

MinGW 프로젝트의 개발은 2005-2008년에 Mingw-w64라는 대체 프로젝트가 탄생하면서부터 시작되었다.

역사

MinGW는 원래 "W32"[3][4]로 단축되는 GNU 규약에 따라 mingw32("Minimalist GNU for W32")로 불렸다.수치는 32비트 바이너리 생성으로 제한되는 것을 피하기 위해 삭제되었습니다.Colin Peters는 1998년에 [5][6]GCC의 Cygwin 포트만으로 구성된 초기 릴리스를 작성했습니다.Jan-Jaap van der Heijden은 GCC의 Windows 네이티브 포트를 만들고 binutils[5][6]make를 추가했습니다.Mumit Khan은 나중에 개발을 인계받았고, Anders [5][6]Norlander의 Windows 시스템 헤더를 포함한 Windows 고유의 기능을 패키지에 추가했다.2000년에는 커뮤니티의 지원을 요청하고 개발을 [5][6]일원화하기 위해 SourceForge로 프로젝트를 옮겼습니다.

MinGW는 Source Forge에서 2005년 [6]9월 이달의 프로젝트로 선정되었습니다.

MSYS ("Minimal System"의 축약어)는 네이티브 Windows 소프트웨어와의 상호 운용성을 향상시키기 위해 Bourne명령줄 인터프리터 시스템으로[7] 도입되었습니다.

2018년 SourceForge와의 메일링 리스트 관리에 대한 의견 불일치로 MinGW는 OSDN으로 [8]이행했습니다.

포크

2007년에는 64비트와 새로운 API를 지원하기 위해 Mingw-w64라고 하는 오리지널 MinGW의 포크가 등장했습니다.그 이후 널리 사용되고 유통되고 있다.MSYS2(최소 시스템 2)는 Mingw-w64 및 Cygwin을 기반으로 하는 Microsoft Windows용 소프트웨어 배포 및 개발 플랫폼입니다.[9]이 플랫폼은 Windows 에서 Unix 월드에서 코드를 전개하는 데 도움이 됩니다.

프로그래밍 언어 지원

GCC에서 지원되는 대부분의 언어는 MinGW 포트에서도 지원됩니다.여기에는 C, C++, Objective-C, Objective-C++, FortranAda가 포함됩니다.GCC 런타임 라이브러리가 사용됩니다(C++의 경우 libstdc+, Fortran의 경우 libgfortran 등).[citation needed]

MinGW는 디폴트로 Windows OS 컴포넌트라이브러리 MSVCRT에 링크되어 있습니다.MSVCRT는 Visual C++ 버전 6.0이 링크된C 라이브러리입니다.이 라이브러리는 1998년에 출시되었기 때문에 C99 기능 또는 C89의 모든 지원도 포함되어 있지 않습니다.타겟팅 MSVCRT는 추가 런타임 재배포 가능성의 설치가 필요 없는 프로그램을 생성하지만, C99의 지원 부족으로 인해 특히 printf 형식의 변환 지정자에 관한 포팅 문제가 발생하고 있습니다.이러한 문제는 C99 호환성 라이브러리인 libmingwex를 구현함으로써 부분적으로 완화되었지만 필요한 광범위한 작업은 아직 완료되지 않았으며 완전히 [10]실현되지 않을 수 있습니다.Mingw-w64 에서는 이러한 문제가 해결되어 POSIX 준거 printf 기능이 완전하게 제공되고 있습니다.

링크 호환성

다른 C++ 컴파일러(MinGW 및 Visual Studio 등)로 생성된 바이너리(실행 파일 또는 DLL)는 일반적으로 링크 호환성이 없습니다.단, 컴파일된 C코드는 링크 [11]호환성이 있습니다.

구성 요소들

MinGW 프로젝트에서는 GCCbinutils 등 GNU 툴체인의 다양한 포트를 포함한 다수의 다른 코어 컴포넌트와 보충 패키지를 [12][13]유지 및 배포하고 있습니다.이러한 유틸리티는 Windows 명령줄에서 사용하거나 IDE에 통합할 수 있습니다.명령줄을 사용하여 mingw-get을 [14]통해 패키지를 설치할 수 있습니다.

MinGW는 에 따라 명명된 동적 라이브러리를 지원합니다.<name>.lib그리고.<name>.dll표기법 및 다음에 이어지는 스태틱라이브러리lib<name>.aUnix 및 Unix 유사 시스템에서 일반적인 명명 규칙입니다.

또한 MinGW의 컴포넌트인 MSYS(Minimal System)는 rxvtautoconf 스크립트를 [15]실행하기에 충분한 POSIX 툴을 포함한 경량 Unix와 유사한 셸 환경의 Windows 포트를 제공하지만 C 컴파일러나 대소문자를 구분하는 [16]파일시스템은 제공하지 않습니다.

mingwPORT는 사용자가 MinGW 소프트웨어 컬렉션에 추가한 것입니다.이러한 「애드온」은, 사전에 컴파일 된 바이너리 패키지로 제공하는 것이 아니고, 인터랙티브한 Bourne 쉘 스크립트의 형태로 제공되고 있습니다.이 스크립트는, 최종 유저가 원래의 소스 코드를 자동적으로 다운로드해 패치 해, 빌드 해 인스톨 하는 프로세스를 안내합니다.mingwPORT에서 애플리케이션을 빌드하는 사용자는 먼저 MinGW와 MSYS를 [17]모두 설치해야 합니다.

Windows 시스템헤더와 스태틱 Import 라이브러리의 실장은 허가 [18]라이선스로 릴리스되며, GNU 포트는 GNU General Public License로 제공됩니다.완전한 MSYS 패키지와 개별 MinGW GNU 유틸리티의 바이너리 다운로드는 MinGW 사이트에서 이용할 수 있습니다.

Cygwin과의 비교

Cygwin과 MinGW를 모두 사용하여 UNIX 소프트웨어를 Windows로 포팅할 수 있지만 접근 [19]방식은 다릅니다.Cygwin은 모든 주요 Unix 시스템 호출 및 라이브러리의 완전한 구현을 포함하는 완전한 POSIX 계층을 제공하는 것을 목표로 합니다.호환성은 성능보다 높은 우선순위로 간주됩니다.반면 MinGW의 우선 순위는 단순성과 성능입니다.따라서 Windows API를 사용하여 쉽게 구현할 수 없는 특정 POSIX API를 제공하지 않습니다.fork(),mmap()그리고.ioctl()SDL, wxWidgets, Qt, GTK 등 MinGW에 이식된 크로스 플랫폼라이브러리를 사용하여 작성된 어플리케이션은 보통 Cygwin에서처럼 MinGW에서 쉽게 컴파일됩니다.[19]

Cygwin으로 작성된 Windows 프로그램은 정적으로 연결되지 않는 한 프로그램과 함께 배포해야 하는 복사호환성 DLL 위에서 실행됩니다.동적으로 링크된 경우 프로그램은 Cygwin 소스를 어디서 얻을 수 있는지에 대한 정보도 제공해야 합니다.MinGW 기반 프로그램은 Windows API에 대한 직접 호출을 사용하여 컴파일되므로 MinGW는 호환성 계층을 필요로 하지 않습니다.

MinGW와 MSYS를 조합하면 레지스트리나 컴퓨터의 파일에 엔트리를 남기지 않고 리무버블 미디어에 로드할 수 있는 소규모 자기 완결형 환경을 제공합니다.

POSIX 시스템에서는 Windows 애플리케이션을 MinGW-GCC와 교차 컴파일할 수도 있습니다.즉, 개발자는 Cygwin 유무에 관계없이 Windows에서 실행되는 소프트웨어를 컴파일하기 위해 MSYS를 사용하여 Windows를 설치할 필요가 없습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Download Package list". osdn.net.
  2. ^ "(MinGW on) MinGW". MinGW.org/wiki. 2008-07-07. Archived from the original on 2013-10-06. Retrieved 2013-10-16.
  3. ^ "GNU Coding Standards". gnu.org. Free Software Foundation. April 27, 2013. 5.5 Portability between System Types. Retrieved July 1, 2013.
  4. ^ Stallman, Richard (2000-09-18). "Libtool Re: Naming a project gnu-win32?". libtool (Mailing list). Retrieved 2013-05-21.
  5. ^ a b c d "History MinGW". MinGW.org. Archived from the original on 2012-08-23. Retrieved 2012-07-09.
  6. ^ a b c d e "(sourceforge's) Project of the Month". SourceForge.net. 2005-08-31. Retrieved 2012-07-09.
  7. ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2006-08-28. Retrieved 2020-04-16. MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system.
  8. ^ "Announcement of migration to OSDN.net". Mingw-users (Mailing list). January 21, 2018.
  9. ^ MSYS2: 공식 홈페이지, 코드 저장소
  10. ^ "(MinGW And) C99". MinGW.org/wiki. 2010-06-21. Archived from the original on 2011-05-20. Retrieved 2011-03-29.
  11. ^ "Interoperability of Libraries Created by Different Compiler Brands MinGW". mingw.org. Archived from the original on 2010-06-12.
  12. ^ "(MinGW) FAQ". MinGW.org. Archived from the original on 2008-11-21. Retrieved 2012-07-09.
  13. ^ "MinGW - Minimalist GNU for Windows". Sourceforge.net. Retrieved 2012-07-09.
  14. ^ "MinGW Command Line Interface Installer". Archived from the original on 15 June 2012. Retrieved 14 June 2012.
  15. ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2016-02-18. Retrieved 2016-02-18.
  16. ^ "(wiki:) MSYS". MinGW.org. Archived from the original on 2016-02-18. Retrieved 2016-02-18. A common misunderstanding is MSYS is "UNIX on Windows", MSYS by itself does not contain a compiler or a C library, [...] nor does it provide any UNIX specific functionality like case-sensitive filenames.
  17. ^ "(wiki:) mingwPORT". MinGW.org. Archived from the original on 2012-07-23. Retrieved 2012-07-09.
  18. ^ "(MinGW) Licensing Terms". MinGW.org. Archived from the original on 2009-08-04. Retrieved 2012-07-09.
  19. ^ a b "(MinGW:) About Cygwin". MinGW.org. Archived from the original on 2009-08-28. Retrieved 2012-07-09.

외부 링크