MinGW

MinGW는 GNU 컴파일러 콜렉션(GCC)의

네이티브 윈도우 포트입니다.

 

GNU는 리눅스 같은 유닉스 계열의

운영체제에서 사용하는 자유 소프트웨어인데

MS사의 윈도우는 별개의 운영체제이므로

그냥은 작동하지 않습니다.

 

MinGW Project는 윈도우에서 GCC를

사용할 수 있도록 포팅하였고

윈도우 API를 사용할 수 있는

런타임 라이브러리를 제공합니다.

 

GNU의 대표 컴파일러인 GCC는 리눅스의

공식 컴파일러로 보통 C컴파일러를

말하는데 현재는 C++, 포트란, 자바 등 다양한

프로그래밍 언어를 지원합니다.

웬만한 리눅스 배포판에는 GCC가

기본으로 설치되어있거나 간단히

설치할 수 있는데 C와 C++의

기본 컴파일러로 사용합니다.

 

MS 윈도우에서 사용할 수 있는

C컴파일러의 옵션은 다양합니다만,

가장 널리 사용된 컴파일러는

역시 MS사의 Visual C++ 컴파일러입니다.

 

그런데 Visual C++을 사용하려면

MS Visual Studio를 설치해야 하는데

지금은 커뮤니티 버전을 무료로

사용할 수 있지만 과거에는 학생들이

사용하기에도 가격이 좀 나갔던

소프트웨어로 기억합니다. 

 

 

오래전 윈도우의 독점이 심하던 시절에

윈도우 네이티브 API를 사용해서

프로그램을 하려면 MS의 컴파일러를

사용하는게 가장 나은 선택이었습니다.

 

MinGW 는 자유소프트웨어인 GCC로도

똑같이 윈도우 런타임에서 작동하는

네이티브 프로그램을 만들 수 있는 개발환경입니다.

 

MinGW는 Minimalist GNU for Windows의

약자로 '윈도우를 위한 최소한의 GNU'

정도로 해석할 수 있습니다.

이름처럼 MinGW는 윈도우에만

설치할 수 있습니다.

 

MinGW를 설치한 후 통합개발환경(IDE)은

보통 비주얼 스튜디오 코드에서 많이

사용하는데 C가 작동하는 어떤 프로그램에도

사용할 수 있는 것이니까 atom 이나

sublime text3 등 다른 IDE를 써도 무방합니다.

(어떤 조합이든 스타일이 맞는 것을 사용하면 된다)

 

비주얼 스튜디오는 MSVC 컴파일러를

(Microsoft Visual C++ Compiler)

사용하는게 좋을 것 입니다.

 

*윈도우에서 MinGW 를 사용하는 장점은?

 

비주얼 스튜디오는 여전히 최고의

윈도우용 C++개발을 위한 IDE이긴

하지만 용량적으로 무거운 프로그램이라서

버벅되는 사양에서 사용하기엔

거슬리다고 느낄 수도 있습니다.

또 기업 등 기관에서 사용하려면

Pro나 Enterprise 에 비용이 들어갑니다.

(MS는 5인 이상부터 Pro를 권장하고 있음)

 

MinGW 는 무료소프트웨어이고

윈도우 네이티브 API를 사용할 수 있는데다

네이티브를 제외하면 GCC 컴파일러니까

리눅스 용 코드와 같습니다. 그러므로

리눅스 기반의 프로그램을 윈도우에서

빌드해서 사용할 수 있습니다.

(소스코드만 가져오면 된다)

 

또 비주얼 스튜디오 코드와 같이

상대적으로 가벼운 IDE에서 사용하니까

저사양 컴퓨터에서도 부담이 적습니다.

 

그럼 MinGW를 설치해보겠습니다.

설치하기

최신 업데이트가 되는 한국어 공식

사이트는 아래 링크입니다.

 

MinGW - Minimalist GNU for Windows 프로젝트 한국어 톱 페이지 - OSDN

 

MinGW - Minimalist GNU for Windows 프로젝트 한국어 톱 페이지 - OSDN

This is the official download site for the latest packages originating from the MinGW.org Project MinGW is a native Windows port of the GNU Compiler Collection (GCC), with freely distributable i...

ko.osdn.net

mingw-get-setup.exe 을 클릭하면

설치 프로그램의 다운로드가 시작됩니다.

 

프로그램을 실행하여 Install 을 클릭하여

설치를 진행합니다.

 

설치할 폴더를 선택합니다.

기본은 MinGW입니다.

 

설치가 끝나고 MinGW 설치 매니저를

실행시킵니다. 패키지의 종류가 여러가지가

있는데 기본 패키지에서 mingw32-base-bin이

C컴파일러이고 mingw32-gcc-g++-bin이

C++컴파일러입니다.

 

 

설치 완료 후에는 윈도우 환경 변수에

추가해주면 됩니다.

 

이렇게 설치해서 사용할 수도 있지만

패키지들 버전이 오래되어 있어서

공식사이트라고 하지만 이쪽은

기존 32비트 버전만 관리하는 듯 합니다.

Mingw-w64

*Mingw-w64는 기존 mingw.org 프로젝트의

향상된 버전으로 2007년 포크해서 64비트와

새로운 API를 지원합니다.

 

아래 홈페이지에 관련 정보가 있고

윈도우용 설치파일도 다운로드

할 수 있습니다. 그렇게 설치해도 되지만...

 

Mingw-w64

 

Mingw-w64

Overview Mingw-w64 is an advancement of the original mingw.org project, created to support the GCC compiler on Windows systems. It has forked it in 2007 in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distr

www.mingw-w64.org

 

bash를 사용할 수 있다면

웬만하면 MSYS2를 사용한

설치를 권장하고 있습니다.

이쪽은 패키지 관리자로 용량은

조금 더 크긴 한데 윈도우에서

GNU 개발환경을 사용하는데

많은 이점을 가지고 있습니다.

MSYS2를 사용한 설치

MSYS2는 네이티브 윈도우 소프트웨어를 위한

배포 및 빌드 플랫폼입니다. GNU bash를 사용합니다.

이것은 Cygwin 의 수정 버전에 기반한

버전 컨트롤 시스템으로 GCC, mingw-w64 등

패키지의 최신 버전을 빌드할 수 있습니다.

 

현재 Base Packages의 숫자가 2400여개를

넘어가는데 mingw-w64의 패키지 관리를

편리하게 합니다. Cygwin이나 WSL,

Chocolatey같은 패키지 매니저와 비슷한

기능을 한다고 보면 됩니다.

 

아래의 링크에 들어가서 installer를

클릭하여 설치합니다. 윈도우11에서는

64비트 버전이 설치됩니다.

 

MSYS2

 

MSYS2

Software Distribution and Building Platform for Windows

www.msys2.org

 

설치할 폴더의 위치만 설정하면 됩니다.

 

 

msys2를 실행한 후 패키지 데이타베이스와

기본 패키지를 업그레이드 합니다.

 

pacman -Syu

y를 입력하여 설치를 진행합니다.

MSYS 업데이트
MSYS 업데이트

설치가 끝나면 MSYS를 한번 종료하고

다시 실행한 후에 나머지 패키지도

업데이트 합니다.

pacman -Su

 

이제 MinGW 패키지를 설치해보겠습니다.

 

개별 패키지를 검색하는 것은 아래

링크에서 할 수 있습니다만, 엄청난 양의

패키지 수에 길을 잃기 쉽습니다.

하지만 패키지들의 Group이 나와있고

설치 명령어와 의존성(dependencies) 등

중요한 정보가 정리되어 있습니다.

 

나중에 필요한 패키지를 여기서 찾으면 됩니다.

 

Packages - MSYS2 Packages

 

Packages - MSYS2 Packages

 

packages.msys2.org

 

여기서는 GNU Compiler Collection 의

Toolchain 을 설치해보겠습니다.

Repo 는 mingw64(향상된 mingw 버전)이고

최종 빌드 날짜는 2021-10-20 입니다.

 

 

*GNU base-devel 도구들을 설치합니다.

base-devel 그룹을 설치할 때

make 등 각종 tool 들을 설치하므로

첫번째로 설치해줍니다.

pacman -S --needed base-devel

*그 다음 MinGW 64비트 버전을 설치합니다.

C/C++ 컴파일러 등이 설치됩니다.

pacman -S --needed mingw-w64-x86_64-toolchain

윈도우의 시스템 환경변수에 추가시켜줍니다.

환경변수가 제대로 편집되었는지

터미널을 열고 gcc --version 명령어로 확인합니다.

 

 

c++ 컴파일러는 g++ --version 으로

설치를 확인할 수 있습니다.

 

*개발환경을 위해서 git 도 설치해줍니다.

git도 환경변수를 추가해줍니다.

git은 \usr\bin\ 폴더에 있습니다.

 

pacman -S git

 

*참고: GCC 툴체인의 32비트 버전은

아래와 같습니다. 두개를 윈도우 환경변수에

넣으면 파일 이름이 같아서

혼동이 될 수 있으니 주의합니다.

(환경변수는 순서대로 인식한다)

 pacman -S --needed mingw-w64-i686-toolchain

 

이 정도를 설치하면 대략적으로

윈도우에서 GNU 소프트웨어를 빌드할

환경의 설치가 완료되었다고 볼 수 있습니다.

* 테스트

테스트는 어떤 에디터를 사용해도

상관이 없습니다만, VSC같은

IDE를 사용하면 더 좋겠습니다.

 

텍스트 에디터로 아래 코드를

hello.c 파일로 저장하여

명령 프롬프트에서 입력합니다.

gcc hello.c -o hello

컴파일에 문제가 없다면 

hello.exe로 실행파일까지 생성됩니다.

실행하면 콘솔에 문자열을 출력합니다.

#include<stdio.h>

int main()
{
    printf("Hello C World!\n");
    
    return 0;
}

 

여기까지 완료하면 MinGW로

C/C++ 개발환경 및 GNU 소프트웨어

빌드환경의 설치가 성공한 것 입니다.

 

 

 

 

 

The GNU Operating System and the Free Software Movement

 

The GNU Operating System and the Free Software Movement

GNU is the only operating system developed specifically to give its users freedom. What is GNU, and what freedom is at stake? Fight to Repair: A video from the FSF What is GNU? GNU is an operating system that is free software—that is, it respects users'

www.gnu.org

10+ Best C and C++ Compilers: Both Windows and Linux (csspoint101.com)

 

10+ Best C and C++ Compilers: Both Windows and Linux

Get the complete list of 10+ best C and C++ compilers for both Windows and Linux. This list also includes online compilers available for both C++ and C language

csspoint101.com

 

공유하기

facebook twitter kakaoTalk kakaostory naver band