2014-11-25 1 views
0

첫 번째로,이 문제에 대한 내 무지를 용서해주십시오. 검색을 수행했지만 아직까지 포괄적 인 답변을 찾지 못했습니다.MinGW를 사용한 Windows 프로그래밍

Windows 용 개발 방법을 배우려하지만, GNU toolchain을 매우 좋아하며 근본적인 기본 사항에 익숙해지기 전에는 Visual Studio와 같은 큰 환경을 사용하고 싶지 않습니다.

내가 이해 한대로, 네이티브 Windows 응용 프로그램을 빌드하는 데 필요한 헤더와 라이브러리가 포함 된 Windows SDK를 다운로드 할 수 있습니다.

SDK는 말 그대로 라이브러리 및 헤더 모음일까요? 그렇다면 내 논리대로, 이러한 라이브러리/헤더를 향해 MinGW를 가리킬 수 있어야하며 정상적으로 간단하게 빌드해야합니다.

Visual Studio를 사용하여 빌드 할 때 어떤 프로그래밍 사전 지정 문이 정의되고 있는지, 어떤 내용이 링크되어 있는지 등을 볼 수 없습니다. 아직 학습 중이므로 정확히 무슨 일이 일어나는지 알고 싶습니다. 에, 선호 그래서 나는 수동으로 정의, 링크 등 따라서 질문.

그럼 내가 알고 싶은 것은 내 논리가 맞습니까?

다시 한 번 말씀 드리지만, 질문이 초보적인 경우 사과 드리며 여전히 배우고 있습니다.

p.s. Windows 환경에서 Windows 응용 프로그램을 개발할 계획입니다. 이것은 크로스 컴파일에 관한 질문이 아닙니다.

감사합니다.

+0

* 수동으로 정의, 링크 등 *'cl'은 컴파일러이고, link는 링커입니다. 그리고 당신은 간다 :] – stijn

+0

커맨드 라인에서 나는 단순히 gcc -c와 ld처럼 cl과 link를 호출 할 수 있는가? 이것은 모든 WinAPI 라이브러리를 직접 링크 시키거나 모든 전 처리기 매크로를 정의합니까? :) 근본적으로, 나는 모든 좋은 것들을 나를 위해하지 않기를 원한다. 그래서 나는 정말로 일어나고있는 것을 배울 수있다. –

+0

먼저 MinGW를 원한다고 결정하십시오. 더 이상 확실하지 않습니다. 그리고 아니요, MS 프로그램의 명령 행 옵션은 물론 GCC와 완전히 똑같지는 않습니다 (동일하지만 일부는 동일). 그리고 전 처리기로 무엇을 달성하고 싶은지 명확히하십시오. 아무것도 정의하지 않고 프로그램을 작성할 수 있습니다. 직접 헤더를 작성 하시겠습니까? 왜? – deviantfan

답변

0

는 MinGW는 SDK합니다 (GCC 기지는 MinGW에
반대로) 많은 VS 고유의 것들을 포함되는 이유
중 하나, 공식 윈도우 SDK와 호환되지 않습니다. MinGW는 필요한 파일을 많이 채택했으며 많은 프로그램에서
이면 충분합니다.

일부 프로그램의 경우 VS 프로젝트 설정을 알 필요가 없습니다.
MinGW는 여전히 핵심 GCC이며 그대로 사용됩니다.
리눅스에서 GCC를 사용하는 프로그램을 컴파일 할 수 있다면 MinGW를 사용하는 법을 배우는 것이 어렵지 않을 것입니다.

기능/구조/기타가 필요한 경우 아직 그것의 일부가 아닌
당신이 직접 적응을하는 것 외에는 행운이 없습니다.
은 경우에 따라 매우 쉽거나 매우 어려운 모든 것일 수 있습니다.
또한 적절한 스레드 사용은 다소 기이합니다 (몇 년 동안 실제 프로그램에서 눈에 띄지 않을 수있는 몇 가지 "숨겨진"함정,
이 있습니다 ...).

(이 VS에 단점은 있지만, 주어질거야 얻을 C++/(14) (11) (VS도 11을 완료
, link 참조) 등 많은 경우에, 더 나은 optimzation hasn't 동안)

다운로드 할 대상을 정확히 선택하는 경우
대신 "원래"이전 버전 인 WinGW-W64를 확인하십시오. 다소 원래 멈춘 프로젝트는 W384, no 64bit 컴파일러 등등에 비해
lib 지원이 불량합니다.(오해하지 마시고
"W64", 32bit 프로그램에도 사용 가능합니다.)

+0

'과도하지 않다'는 말은 과장된 것입니까? – stijn

+0

글쎄, "가까운"의미는 당연히 비난 받았지만 http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs- 2015-preview.aspx 특히 테이블의 후반부에는 많은 "아니오"가 있습니다. 적어도 "끝나지 않았다"는 사실이며, 그 속도로, 아마 2020 년 이전에는되지 않을 것입니다. – deviantfan

관련 문제