윈도우 환경에서의 gcc

Posted by ironmask84
2016. 10. 31. 15:24 나는 프로그래머다!/기초 다지기


GCC (GNU Compiler Collection)는 다양한 프로그램 언어의 컴파일을 지원하는 컴파일러 시스템이며, 특히 C와 C++의 컴파일에 활용될 수 있습니다. 리눅스나 FreeBSD 등의 유닉스 계열 OS에서 매우 광범위하게 사용되어 오면서 뛰어난 성능을 검증받았습니다.

 

윈도의 경우, cygwin과 MinGW가 윈도로 포팅된 gcc의 양대산맥이라고 할 수 있는데, 둘의 성격은 꽤 다른 편입니다. cygwin의 경우 윈도에서 리눅스 환경을 느끼면서 코딩할 수 있도록 배려한 라이브러리가 포함되어 있으며, 주로 유닉스 계열에서 쓰이는 POSIX API 집합을 지원합니다. 따라서 cygwin으로 컴파일된 프로그램을 실행하기 위해서는 별도의 라이브러리(cygwin1.dll)가 필요합니다. (cygwin이 GPL 라이센스를 따르므로 라이브러리 사용시 일부 라이센스 문제가 있을 수 있습니다.)

 

한편 MinGW의 경우 MS에서 제공하는 C 런타임 라이브러리(msvcrt)를 기반으로 동작합니다. 따라서 cygwin과 달리 런타임 라이브러리는 필요하지 않으나, msvcrt가 C99의 기능들을 지원하지 않는 관계로 libmingwex라는 추가 라이브러리를 통해 해당 부분에 대한 지원을 시도하는 중입니다. (출처) 해당 문제점은 MinGW에서 갈라져 나온 새로운 가지인 MinGW-w64에서 해결되었는데, C99의 기능 뿐만 아니라 더 다양한 API, 64비트 윈도우 등에 대한 지원이 추가되었으며, 32비트용 컴파일 또한 지원합니다.

 

결론적으로, 기존에 리눅스 환경에서 실행되던 프로그램을 윈도로 포팅하는 경우에는 cygwin을 사용하고, 일반적인 윈도용 어플리케이션을 개발하기 위한 범용 컴파일러는 MinGW-w64를 사용하는 것이 좋을것 같습니다.


http://jscript.blog.me/220084163392 펌


MinGW은 이클립스 플러그인으로도 제공됩니다.

MinGW에 간단 사용기 : http://neuro.tistory.com/32


 

Cygwin 관련 팁들

Posted by ironmask84
2010. 12. 2. 16:39 나는 프로그래머다!





윈도우 환경에서 linux 기반 크로스컴파일 개발환경으로 쓰이는 것이 Cygwin인데요.

간단한 팁들 공유합니다.


setup.exe를 실행시킨 후 "Select Packages" 단계에서

Base Category 안의 cygwin 패키지를 확인해 보셔도 되고,

Cygwin을 실행시키고 다음 명령을 내려서 확인하셔도 됩니다.

$ uname -a

CYGWIN_NT-5.0 w2kbox 1.5.13(0.122/4/2) 2005-03-01 11:01 i686 unknown unknown Cygwin

혹은 cygcheck 명령을 써도 됩니다.

$ cygcheck -s | less

...

   Cygwin DLL version info:
       DLL version: 1.5.13
       DLL epoch: 19
       DLL bad signal mask: 19005
       DLL old termios: 5
       DLL malloc env: 28
       API major: 0
       API minor: 122
       Shared data: 4
       DLL identifier: cygwin1

============================================================

cygwin 삭제 방법

 

공식 사이트(http://cygwin.com) FAQ에 적힌 내용을 보면...

 

1. cygwin 폴더를 지운다. 안지워 질때는 시그윈이 사용중임으로 사용중인 시그윈을 모두 종료한다.

 

2. 레지스터를 지운다. 다음 두군데에서

    [HKEY_LOCAL_MACHINE\SOFTWARE]

    [HKEY_USERS]

    안에 Cygnus Solutions 키를 지운다.

 

3. 윈도우에 있는 바로가기를 지운다.


이렇게 한다고 합니다.