Sunday, March 14, 2010

MinGW와 MSYS 설치하기

윈도우처럼 오픈소스가 아닌 운영체제를 사용하면 컴파일할 필요를 별로 느끼지 않는다. 하지만, 리눅스를 쓰다 보면 커널 및 여러 쓸모있는 프로그램을 컴파일하게 되고 자연히 컴파일하는 버릇을 가지게 된다. 리눅스에서 쓰던 유용한 프로그램들을 윈도우에서도 쓸 수 있으면 얼마나 좋을까. 다행히 윈도우에서도 리눅스 프로그램을 포팅할 수 있도록 도와 주는 GCC 컴파일러를 제공하는 MinGW 프로젝트가 있다. 물론, 윈도우 전용 프로그램도 맘껏 만들 수 있는, 아주 쓸만한 대체적 개발 환경이다. 그럼, 이제 MinGW를 윈도우에 설치해 보자.



참고: Windows Vista 또는 Windows 7 환경에서는 파일 시스템에 대한 사용자 권한 제한 때문에 MinGW 사용시 컴파일 에러 같은 문제가 일어날 수 있다. 이러한 경우 다음과 같이 여러 해결 방법이 있다.

  • 자신의 사용자 폴더(C:\Users\Name) 또는 데스크탑(C:\Users\Public\Desktop)에 MinGW와 MSYS를 설치한다.
  • FAT 파티션이나 USB 메모리에 MinGW를 설치한다.
  • C:\MinGW에 설치했을 경우 MSYS를 실행할 때 MSYS (rxvt) 아이콘을 오른쪽 마우스 버튼으로 클릭하여 관리자 권한으로 실행한다.
  • USB 메모리에 PortableApps 플랫폼을 설치한 다음 MinGW PortableApp 받아서 설치하면 MinGW 설치가 쉽게 된다. 이렇게 하면 번거롭게 아래 설명을 따르지 않아도 된다.
  • Safe mode로 Windows를 시작한다.



  1. MinGW 설치에는 다음 3 가지 설치 프로그램이 필요하다. 모두 받아서 차례대로 설치하자.




  2. 먼저 MinGW 자동 설치자(MinGW-5.1.6.exe)를 실행한다. 그러면, Download and install 또는 Download only 둘 중 선택하라고 한다. Download and install 즉, 다운로드 후 설치를 선택한다.


    MinGW installer asks download only?

    다음은 MinGW 릴리스를 선택하는 질문인데 Current를 선택한다.


    MinGW installer asks you to choose package

    다음은 MinGW 설치 요소를 선택한다. MinGW base tools, g++ compilerg77 compiler를 선택하기를 권장한다. 나중에 MSYS를 설치하기 때문에 아직은 MinGW make를 선택하지 않는다.


    Select the MinGW components to install

    다음은 설치 폴더를 결정한다. Windows Vista 및 Windows 7 사용자는 기본값인 C:\MinGW 대신 C:\Users\Public\Desktop\MinGW 폴더에 설치하기를 권한다. MinGW는 공백이 포함된 경로와 문제가 있으므로, "Program Files" 또는 "My Documents" 같은 폴더에 설치하지 않는 게 좋다. MinGW 설치 프로그램이 MinGW 요소를 스스로 받아서 설치한다.


    MinGW installer downloading components

  3. MinGW 설치가 끝나면, MSYS-1.0.11.exe를 실행해 MSYS를 설치한다.


    MinGW Destination Directory

    MinGW가 설치된 경로를 묻는 질문이 나오면, 실제로 MinGW가 설치된 경로(기본값 C:/MinGW 또는 C:/Users/Public/Desktop/MinGW)를 입력한다.


    MSYS asks MinGW path

    MSYS가 성공적으로 설치되면, fstab 파일(C:/MinGW/1.0/etc/fstab 혹은 C:/Users/Public/Desktop/MinGW/1.0/etc/fstab)을 텍스트 에디터(notepad.exe)로 열어 내용을 확인한다. 다음과 같이 /mingw 에 대한 실제 디렉토리 매핑이 올바로 되어 있어야 한다.


    C:/MinGW /mingw

    시작 프로그램 메뉴에서 MSYS (rxvt) 아이콘을 더블클릭하여 MSYS를 테스트해 본다. 익숙한 리눅스 명령어를 입력할 수 있는 터미널 창이 나타난다. 다음은 GCC 컴파일러의 버전을 알아보는 명령어인데 현재 3.4.5란 결과가 나올 것이다.


    $ gcc --version
    gcc.exe (GCC) 3.4.5 (mingw-vista special r3)
    Copyright (C) 2004 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


  4. 다음은 MinGW 개발 도구 모음(msysDTK-1.0.1.exe)을 설치한다. MSYS가 설치된 폴더(C:\MinGW\1.0 혹은 C:\Users\Public\Desktop\MinGW\1.0)에 설치하도록 한다. cvs, perl, ssh 같이 개발에 유용한 도구가 설치될 것이다.


    perl --version
    ssh --version


  5. 그 밖에 MinGW 프로젝트에서 여러 패키지를 받아서 추가적으로 설치한 수 있다. 예를 들어 mingw-utils 받아서 설치할 수 있다.

    cd /mingw
    tar xzvf mingw-utils-0.3.tar.gz

    다음 몇 가지 프로그램도 유용하다.




  6. MinGW 설치 폴더에 쓰기 권한이 없을 경우, 혹은 사용자 이름이 한글일 경우엔 환경변수 HOME을 정해 주는 것이 좋다. 자신의 홈 디렉토리를 따로 설정해 주는 것이다.

    Set your own HOME variable

  7. 마지막으로, 홈 폴더에 .profile 이름의 텍스트 파일을 만들어 컴파일 환경을 설정할 수 있다. 다음은 예제 .profile 내용이다.

    CC='/mingw/bin/gcc.exe '
    CFLAGS='-march=pentium2 -mtune=i586 -mthreads -O2 -g -fomit-frame-pointer -mms-bitfields -pipe '
    CPPFLAGS='-I/mingw/include -DWIN32 -DMINGW32 '
    CXXFLAGS="${CFLAGS}"
    LDFLAGS='-L/mingw/lib -Wl,--enable-auto-image-base -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc '
    PKG_CONFIG_PATH=/mingw/lib/pkgconfig
    export CC CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH

    CFLAGS와 LDFLAGS를 각자의 취향에 맞게 고쳐서 사용하면 좋다. -march= 옵션으로 자신의 CPU에 최적화한 코드를 만들 수 있는데, i586, pentium-mmx, i686, pentium2, pentium3, pentium-m, pentium4, prescott, k6-2, athlon, athlon-4 따위에서 -march= 값을 고를 수 있다(자세한 정보).


    CFLAGS='-march=pentium3 -mthreads -O2 -fomit-frame-pointer -mms-bitfields -pipe '
    export CFLAGS

No comments:

Post a Comment

About This Blog

KBlog logo This blog seeks to provide a collection of interesting pictures found on the Web. Thanks for visiting the blog and posting your comments.

© Contents by KBlog

© Blogger template by Emporium Digital 2008

Followers

Total Pageviews

Powered By Blogger