검증요청 바랍니다.

dummy999의 이미지

Quote:

build .2

GCC는 GNU Compiler Collection의 약자입니다.

다시말하지면 GNU에서 만든 컴파일러 묶음(꾸러미)라고 할수있습니다.

C, C++, Objective-C, Fortran, Java, Ada, 등의 컴파일러와 관련 라이브러리들을 지원합니다.

이런 GCC는 각종 플랫폼(OS)로 포팅(변환제작)되어 배포되고있습니다.

1. DJGPP(http://www.delorie.com/)
상당히 오래된 GCC중하나입니다.
그러나 제가 알기로는 소켓작업같은것은 할수없던걸로 기억합니다.
왜냐면 단지 BCC나 VC처럼 단지 윈도우를 기반으로 하기때문인거같습니다.
이것은 하위급프로그래밍(시스템프로그래밍으로 네트웍이나 커널관련프로그래밍등을 포함하는 프로그래밍)을 지원하지않는것으로 알고있습니다.

2. Cygwin(Cygwin.com)
시그너스라는 회사에서 만든 제품인걸로 알고있습니다.
이것은 윈도우내에서 리눅스환경(유닉스라고하기엔 리눅스쪽에 가까운모습을 하고있습니다.)을 제공합니다.
터미널자체가 리눅스와 비슷한형태로 뜬다는겁니다.
그리고 x윈도우도 지원하는등 마치 윈도우에서 리눅스를 돌리는것과 비슷한
효과를 줍니다.
하위급 프로그램(시스템프로그래밍)을 지원하고있습니다.

3. MinGW(http://www.mingw.org/)
MinGW는 Minimalist GNU for Windows의 약자입니다.
최적화된 GCC라는 뜻이라고 생각이됩니다.
DJGPP와 비슷한 형태의 패키지라고 생각하시면됩니다.
일반적으로 많이 쓰이는 컴파일러입니다.
DEV-C++도 이 컴파일러 패키지를 기본세트로 포함하고있습니다.

4. MSYS(http://www.mingw.org/)
MinGW를 기반으로하는 Cygwin과 유사한 패키지입니다.
잘쓰이지는 않는거같습니다.
지원한것도 부족한것같아보입니다.

5. http://unxutils.sourceforge.net/
여기는 그냥 유닉스 유틸리티를 윈도우용으로 포팅해놓은 사이트인데
그냥 그렇저렇 쓸수있습니다.

6.리눅스 뉴 (http://linuxnew.com)
국내개발자이신 박병익씨께서 만든것입니다.
그런데 언제부턴가 갑자기 사이트를 폐쇠한다고 하면서 더이상 개발을 하지않습니다. 프로그램도 다운로드 받을수없습니다.

그이유는 여기에있는거같은데 무슨 속사정이 있을듯보입니다.
http://bbs.kldp.org/viewtopic.php?t=38567&highlight=

7.Interix(http://www.interix.com/tools/warehouse.htm)
http://www.microsoft.com/windows/sfu/
MS에서 지원하는 프로그램입니다. 최근에도 지원하고있는지는 잘모르겠습니다만.
이에대한 정보는 잘모릅니다.
윈도우 2000 프로페셔널 이상에서만 사용가능하다고합니다.
XP홈에디션에서도 불가능합니다.

최근엔 많은 패키지들을 지원하고있다고 합니다.
그리고 전용으로 사용하는것보다는 아래사이트에서 패키지를 추가하여사용하는것이 좋다고 합니다.
http://pkgsrc.org
Interix + pkgsrc 흔히들 이렇게 많이 쓴다고합니다.

- 인용 시작 -
cygwin이나 mingw와 유사한 환경입니다.
원래는 Interop Systems의 Interix라는 제품이나 마이크로소프트가 사들여 무료 다운로드가 가능합니다. 기본적으로 System V 환경을 제공하며, 다른 오픈 소스 환경과 다르게 NFS 클라이언트와 서버를 제공합니다. csh과 ksh 환경도 제공합니다. Interix에서 사용할 수 있는 오픈소스 패키지(http://www.interix.com/tools/warehouse.htm) (대부분 최신 버전으로 유지되고 있습니다.)
- 인용 끝 -

8. X-Win32 LX(http://www.starnet.com/xwin32LX/get_xwin32LX.htm)

윈도우용 X윈도우입니다.

X윈도우만 지원하는것같습니다.

9. gnu-win32 (http://gnuwin32.sourceforge.net/)
- 인용 시작 -
GNU 또는 다른 오픈 소스 유틸리티를 Win32환경에서 빌드해 놓은 것입니다.
- 인용 끝 -

10. coLinux(http://colinux.org)
- 인용 시작 -
Cooperative Linux는 윈도우에서 어플리케이션 형태로 동작할 수 있도록 포팅된 리눅스입니다. 설치하면 프로그램 형태로 리눅스 커널이 부팅되고, 사용자는 별도의 콘솔 프로그램을 이용하여 리눅스 콘솔에 접속하거나, 네트워크 설정을 하고(별도의 브리지 드라이버 이용) 외부에서 터미널 로그인을 할 수 있습니다. 파일시스템은 Debian이나 Gentoo의 파일시스템 이미지에서 부팅합니다.
- 인용 끝 -
저는 이것을 써보진않았습니다.

-- 결론 --
무엇을쓰던간에 리눅스(또는 유닉스)환경을 접할수있습니다.
다만 대부분의 사용자는 윈도우 기반에서 사용하기를 원할껍니다.

제가 보기엔 그래도 가장 무난한것이 Cygwin같습니다.
왜냐면 가장 편하게 설치할수있다는 장점도있고
지원해주는것도 다양하기때문입니다.
또 무엇보다도 많이 알려져있습니다.

어느정도 형평성도있겠지만. 진정한삽질도 해댈수있으니..
가장 무난하죠..

-- 주의사항 --
이글은 상당히 불안한 정보를 띄고있습니다.
확인안된정보를 많이 포함시켜놓은것은 확실합니다.
단지 이쪽관련해 아시는분들의 수정사항을 지적해주시면 완벽한 정보가 될거같습니다.

-- 참고사항 --
http://blog.naver.com/jabusunin.do?Redirect=Log&logNo=20011268454
http://blog.naver.com/kaphyeon.do?Redirect=Log&logNo=40002546274
http://blog.naver.com/rainst.do?Redirect=Log&logNo=10932609
http://blog.naver.com/kmoonki.do?Redirect=Log&logNo=20006279515

http://gcc.gnu.org/ GCC관련정보,영문

몇몇 틀린부분이있다면 가차없이 지적바랍니다.

cjh의 이미지

대부분의 글은 제가 정리한 글이군요. 원문은 아래에 있습니다.

http://wiki.kldp.org/wiki.php/UnixPlatformForWin32

블로그에 퍼가는건 좋은데 원 문서 위치도 밝혀두지 않고 그대로 복사하는건 별로 좋아보이지 않는군요 -_- dummy999님 잘못은 아니지만...

그리고...

djgpp는 DOS의 DPMI 모드용 gcc 포트입니다. 그게 뭐냐 하면... 원래 DOS는 16비트 프로그래밍 환경이지만 386 이상에서는 32비트 flat mode 로 프로그래밍할 수 있습니다. 이런 규약을 DPMI라고 하고(메모리 모델의 제약이 없어서 예전 DOS용 게임에서 많이 썼습니다) djgpp는 그 환경에서의 gcc를 제공합니다. 시스템/소켓 프로그래밍이 불가능하거나 하지 않습니다. DOS니까 DOS 방식대로 코딩하면 됩니다. Winsock같은건 Win32용이니까 아예 없겠지만...

--
익스펙토 페트로눔

죠커의 이미지

dummy999 wrote:
1. DJGPP(http://www.delorie.com/)
상당히 오래된 GCC중하나입니다.
그러나 제가 알기로는 소켓작업같은것은 할수없던걸로 기억합니다.
왜냐면 단지 BCC나 VC처럼 단지 윈도우를 기반으로 하기때문인거같습니다.
이것은 하위급프로그래밍(시스템프로그래밍으로 네트웍이나 커널관련프로그래밍등을 포함하는 프로그래밍)을 지원하지않는것으로 알고있습니다.

cjh님이 말씀하셨지만 조금 부연하자면 VC나 BCC는 윈도우 기반이라서 소켓 작업을 할 수 있습니다. 윈속을 쓰면 되니깐요.

dummy999의 이미지

여튼 DPMI 모드용 GCC라고 생각하는것에는 동의합니다.
포팅 GCC중하나라고 해야 적절한표현인가요?

정리하면 DPMI는 16비트의 다이렉트모드에서 사용하던 램을 32비트에서 확장의 개념으로 16비트와 호환시키면서 사용하는기술을 말하는고
그런 기술적방법들로 DPMI, VCPI, EMS등의 기술이있다는건가요?

그리고 DJGPP는 그중의하나인 DPMI기술을기반으로 포팅된 GCC라는거고요.

제가 알기로는 VC와 BCC와는 다르게 DJGPP는 소켓을 지원하지않는것으로 알고있습니다. 설령지원한다고해도 윈속을 지원하지 유닉스소켓(BSD소켓이라고 하죠?)을 지원하지는 않는다고 생각하는데.. 정확하게 소켓은 어떻게 사용하는지 모르겠습니다.

http://terms.co.kr/protectedmode.htm

그리고 MinGW는 소켓을 어떻게 지원하는지 모르겠군요.
MSYS같은경우엔 BSD소켓을 사용해도되겠지만..
MinGW는 에뮬레이터가 아니니까... BSD소켓를 쓸수는 없을것같고..
아예 지원안하거나 윈속을 지원할거같음.
아니면 cygwin.dll처럼 별도의 미들웨어같이 중간자역할로 하나끼어서
한다거나.. MSYS는 뭐가 그렇게 낄련지..

------------------------------------
F/OSS bless you... ^^*

cjh의 이미지

djgpp의 소켓 사용은 이런게 있군요.

http://www.geocities.com/SiliconValley/Peaks/8523/

mingw는 그냥 winsock 쓰면 됩니다. (win32 native compiler니까요)

--
익스펙토 페트로눔

dummy999의 이미지

질문입니다.

win32 native compiler를 해석하면 어떻게 쉽게 해석할수있는건가요?
win32지향형 컴파일러?

그리고 같은 GCC인데도 어떤것은 wsock(DJGPP)를 쓰고 어떤건 winsock(MinGW)를쓰고 어떤것은 bSD소켓(Cygwin)을 쓰고.. 가지가지넹..

------------------------------------
F/OSS bless you... ^^*

sodomau의 이미지

win32 용 컴파일러.. 요 말이 가장 그럴듯 할 듯

dummy999 wrote:
질문입니다.

win32 native compiler를 해석하면 어떻게 쉽게 해석할수있는건가요?
win32지향형 컴파일러?

그리고 같은 GCC인데도 어떤것은 wsock(DJGPP)를 쓰고 어떤건 winsock(MinGW)를쓰고 어떤것은 bSD소켓(Cygwin)을 쓰고.. 가지가지넹..

죠커의 이미지

dummy999 wrote:
그리고 같은 GCC인데도 어떤것은 wsock(DJGPP)를 쓰고 어떤건 winsock(MinGW)를쓰고 어떤것은 bSD소켓(Cygwin)을 쓰고.. 가지가지넹..

같은 internet explorer라도 다른 socket을 쓸 것입니다. :P

dummy999의 이미지

CN wrote:
dummy999 wrote:
그리고 같은 GCC인데도 어떤것은 wsock(DJGPP)를 쓰고 어떤건 winsock(MinGW)를쓰고 어떤것은 bSD소켓(Cygwin)을 쓰고.. 가지가지넹..

같은 internet explorer라도 다른 socket을 쓸 것입니다. :P


무슨말인가요?
IE가 Winsock을 안쓴다는건가요?

------------------------------------
F/OSS bless you... ^^*

죠커의 이미지

dummy999 wrote:
CN wrote:
dummy999 wrote:
그리고 같은 GCC인데도 어떤것은 wsock(DJGPP)를 쓰고 어떤건 winsock(MinGW)를쓰고 어떤것은 bSD소켓(Cygwin)을 쓰고.. 가지가지넹..

같은 internet explorer라도 다른 socket을 쓸 것입니다. :P


무슨말인가요?
IE가 Winsock을 안쓴다는건가요?

IE가 윈도우 용만 있는 것은 아니거든요.