프로그래밍 언어2015. 8. 27. 15:10

윈도우에서 gcc를 사용하고 싶을 때가 있다. 그렇게 하려면 가장 쉬운 방법은 MinGW를 설치하는 것이다.

기본적인 MinGW를 설치하면, bash와 gcc(4.8.x)를 바로 사용할 수 있다.


그런데, 현재 최신 gcc는 5.2.x 이고, C++11/14을 사용하려면 최신 버전의 컴파일러가 필요한데, 최강의 IDE인 Visual Studio 2015에서 C++11/14을 지원하기 때문에 아쉬움이 덜 하기는 하지만, 그래도 gcc(g++)를 사용해야 할 필요가 발생하기도 한다.


이러한 요구사항이 있던 상태에서, 그냥 저냥 지내다가, 트위터를 통해 conemu(오픈소스 프로젝트)라는 것이 있다는 것을 알게 되었고, 간단하게 (하지만 필요한 내용이 포함된) 소개된 블로그를 통해 잘 설치할 수 있었다.

위 블로그에 링크되어 있는 "Consolas + 맑은 고딕" 폰트는 링크가 깨져 있지만, 구글링 하면 간단하게 찾아서 추가할 수 있다.


이렇게 강력한 console emulator를 설치한 김에, 그럼 gcc 최신 버전도 사용을 해 보자는 생각으로 구글링을 좀 했더니, MSYS2라는 것을 알게 되었다.

이게 참 잘 만들어 놓은게, 우분투의 apt-get 처럼 pacman이란 명령으로 각종 binary package를 최신버전으로 업데이트/설치 할 수 가 있다!

그런데, 이게 conemu와 함께 사용하려면 몇 가지 문제가 있는 것 같다. 이래저래 conemu와 MSYS2를 연결 했지만, clear 명령을 실행하면, 화면이 제대로 지워지지 않아 구글링 해 봤더니, TERM이라는 환경변수를 cygwin으로 설정해 주면 된다고 되어 있었다.


[conemu와 MSYS2를 연결하는 명령어]

C:\msys64\usr\bin\mintty -i /msys2.ico /usr/bin/bash --login

>> 처음에는 이렇게 연결 했었는데, conemu를 다시 실행하니, 목록에 자동으로 MSYS2가 추가 되더라...


정말 해결이 되긴 되었는데, 그 다음엔 vim이 문제가 되더라. vim 화면이 보이지 않는 현상...;;

이것도 어떻게 해결을 해 보려고 하다가, 너무 많은 시간을 소비 하는 듯 하여, 우선은 git bash를 사용하고, 컴파일러만 연결해서 사용하기로 함;;


기본적인 업데이트는 MSYS2 설치가이드를 참고하면 될 것 같고, 간단하게 gcc를 설치하는 벙법만 정리해 보면 다음과 같다.


[package 검색]

$ pacman -Ss gcc
mingw32/mingw-w64-i686-gcc 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64
mingw32/mingw-w64-i686-gcc-ada 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (Ada) for MinGW-w64
mingw32/mingw-w64-i686-gcc-fortran 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (Fortran) for MinGW-w64
mingw32/mingw-w64-i686-gcc-libgfortran 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (libgfortran) for MinGW-w64
mingw32/mingw-w64-i686-gcc-libs 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (libraries) for MinGW-w64
mingw32/mingw-w64-i686-gcc-objc 5.2.0-3 (mingw-w64-i686-toolchain)
    GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc 5.2.0-3 (mingw-w64-x86_64-toolchain)
    GNU Compiler Collection (C,C++,OpenMP) for MinGW-w64

mingw64/mingw-w64-x86_64-gcc-ada 5.2.0-3 (mingw-w64-x86_64-toolchain)
    GNU Compiler Collection (Ada) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-fortran 5.2.0-3 (mingw-w64-x86_64-toolchain)
    GNU Compiler Collection (Fortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libgfortran 5.2.0-3 (mingw-w64-x86_64-toolchain)
    GNU Compiler Collection (libgfortran) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-libs 5.2.0-3 (mingw-w64-x86_64-toolchain) [installed]
    GNU Compiler Collection (libraries) for MinGW-w64
mingw64/mingw-w64-x86_64-gcc-objc 5.2.0-3 (mingw-w64-x86_64-toolchain)
    GNU Compiler Collection (ObjC,Obj-C++) for MinGW-w64
msys/gcc 4.9.2-5 (msys2-devel)
    The GNU Compiler Collection - C and C++ frontends
msys/gcc-fortran 4.9.2-5 (msys2-devel)
    Fortran front-end for GCC
msys/gcc-libs 4.9.2-5 (base) [installed]
    Runtime libraries shipped by GCC
msys/mingw-w64-cross-gcc 4.9.2-3 (mingw-w64-cross-toolchain mingw-w64-cross)
    Cross GCC for the MinGW-w64


[package 설치]

$ pacman -S mingw-w64-x86_64-gcc
resolving dependencies...
looking for conflicting packages...

Packages (1) mingw-w64-x86_64-gcc-5.2.0-3

Total Installed Size:  100.20 MiB
Net Upgrade Size:        0.00 MiB

:: Proceed with installation? [Y/n] Y


현재 64bit 윈도우를 사용하고 있어서, MSYS2 64bit 버전을 설치 해 봤는데,

MSYS2를 conemu와 연결하지 않고 단독으로 사용한다면, 정말 linux shell interface와 거의 유사하게 사용할 수 가 있다.


참고로, conemu와 연결을 하려니, 앞서 얘기한 문제들이 발생했고, 그래서 git bash(32bit)를 conemu와 연결해서 사용하는데, MSYS2 64bit에 포함된 ls등의 명령어를 git bash에서 실행하면 많이 느린 느낌이 든다.


아무튼 좋은 환경을 만들 수 있어 좋다. 세상엔 훌륭하고 똑똑한 사람들이 너무 많다-0-

나도 세상에 도움이 되는 사람이 되어야 할 텐데 말이지...;; (이 나이 먹고도 이런 고민을 하고 있다 oTL)

Posted by 세월의돌