나는 이것이 매우 오래된 게시물이라는 것을 알고 있지만 최근에야 사용할 수 있으며 Windows 플랫폼에서 거의 모든 Objective-C 2.0 기능을 사용할 수있는 솔루션을 발견했습니다.
gcc 4.6 이 출시되면서 Objective-C 2.0 언어 기능 (블록, 도트 구문, 합성 속성 등)에 대한 지원이 Objective-C 컴파일러에 추가되었습니다 (자세한 내용 은 릴리스 정보 참조). 또한 런타임은 Apple 자체 Objective-C 2.0 런타임과 거의 동일하게 작동하도록 업데이트되었습니다. 즉, Mac에서 Clang으로 합법적으로 컴파일하는 모든 프로그램은 수정없이 gcc 4.6으로 컴파일됩니다.
부수적으로 사용할 수없는 기능 중 하나는 사전 / 배열 / 기타 리터럴입니다. 모두 Apple의 NSDictionary, NSArray, NSNumber 등의 클래스를 사용하기 위해 Clang으로 하드 코딩되어 있기 때문입니다.
그러나 Apple의 광범위한 프레임 워크 없이도 행복하게 살 수 있다면 가능합니다. 다른 답변에서 언급했듯이 GNUStep 및 Cocotron은 수정 된 버전의 Apple 클래스 라이브러리를 제공하거나 자신이 선호하는 옵션을 작성할 수 있습니다.
MinGW는 Windows 플랫폼에서 GCC 4.6을 얻는 한 가지 방법이며 MinGW 웹 사이트 에서 다운로드 할 수 있습니다 . 설치시 C, C ++, Objective-C 및 Objective-C ++ 설치가 포함되어 있는지 확인하십시오. 선택 사항이지만 MSYS 환경을 설치하는 것이 좋습니다.
Objective-C 2.0 소스가 설치되면 다음을 사용하여 컴파일 할 수 있습니다.
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW에는 기본 GUI Windows 응용 프로그램을 -mwindows
플래그 로 컴파일하는 기능도 포함되어 있습니다. 예를 들면 다음과 같습니다.
g++ -mwindows MyFile.cpp
아직 시도하지는 않았지만 Objective-C 클래스를 가능한 가장 높은 계층에서 Objective-C ++로 래핑하면 하나의 Windows 응용 프로그램에서 기본 Windows GUI C ++와 Objective-C를 모두 얽매일 수 있어야합니다.