Code

MSYS2 MSYS, MINGW64, UCRT64 차이점 비교

codens 2024. 11. 14. 22:50

 


* MinGW
https://en.wikipedia.org/wiki/MinGW
1998 
MinGW (Minimalist GNU for Windows).
유닉스용 프로그램 코드를, 윈도우에서 빌드하는 도구
윈도우에서 GCC(GNU Compiler Collection) 사용 가능


- Mingw-w64
https://en.wikipedia.org/wiki/Mingw-w64
2005
MinGW의 64bit 버전


* MSYS2
https://en.wikipedia.org/wiki/Mingw-w64#MSYS2
"minimal system 2"
MSYS - 32bit
MSYS2 - 64bit

유닉스 명령을 사용할 수 있는 셸 환경을 제공
가상머신 방식 아님, POSIX 네이티브 API사용시 빌드 불가
MinGW 패키지 포함


* Cygwin
https://en.wikipedia.org/wiki/Cygwin
유닉스 명령을 사용할 수 있는 셸 환경을 제공
가상머신 방식
WSL로 대체

 

* UCRT (Universal C Runtime)
Windows 10부터 도입된 새로운 C 런타임 라이브러리, 이전의 MSVCRT를 대체

C표준 준수, Windows의 모든 버전에서 동일한 런타임(ucrtbase.dll )을 사용

    - UCRT64 - 64bit

 

 

//-----------------------------------------------------------------------------

< MSYS2 의 실행환경 비교 >

 

MINGW64 환경
• 오래된 MSVCRT(Microsoft Visual C++ Runtime)를 사용합니다
• 모든 Windows 버전과의 하위 호환성이 좋습니다
• C99 완벽 호환은 아니지만, mingw-w64가 대체 함수를 제공합니다
• 패키지 접두사: mingw-w64-x86_64-를 사용합니다

 

MSYS 환경
• Cygwin 기반의 POSIX 호환 레이어를 제공합니다
• 주로 크로스 플랫폼으로 작성되지 않은 Linux 애플리케이션을 컴파일하는데 사용됩니다
• bash, grep, sed, awk 등 Linux 스타일의 명령줄 유틸리티를 제공합니다
• 성능 오버헤드가 있으며, 다른 환경에 비해 라이브러리가 제한적입니다

UCRT64 환경(MinGW-w64 UCRT)
• Windows 10 이상에서 사용되는 최신 Universal C Runtime(UCRT)을 사용합니다
• 현대적인 Visual Studio와 호환성이 좋으며, 기본 환경으로 권장됩니다
• UTF-8 경로명을 지원하고 C99 호환성이 있습니다
• 패키지 접두사: mingw-w64-ucrt-x86_64-를 사용합니다

 

//

주요 차이점 비교

환경 C 라이브러리 주 용도 설치 위치
UCRT64 UCRT 현대적 Windows 개발 /ucrt64
MSYS Cygwin Linux 도구/컴파일 /usr
MINGW64 MSVCRT 레거시 호환성 /mingw64

일반적으로 새로운 프로젝트를 시작한다면 UCRT64 환경이 권장됩니다

//

 

반응형