2008-10-05 3 views

답변

18

Objective-C는 GCC 또는 LLVM [*]을 통해 원시 코드로 컴파일됩니다. Linux에서 ObjC 프로그램을 컴파일 할 수 있습니다 (일반적인 GCC는 ObjC를 행복하게 지원할 것입니다.하지만 Apple의 라이브러리와 다른 런타임 라이브러리를 사용합니다). Cocoa와 유사한 크로스 플랫폼 API (예 : Cocoa에서 파생 됨)가 Linux에서 원활하게 작동하고 OS X와 ​​Linux 사이에서 일부 코드를 이식 할 수있게하려면 GNUstep : http://www.gnustep.org

[*] 실제로 LLVM은 내부적으로 Objective-C를 내부 비트 코드 표현으로 컴파일 한 다음 대상 기계를 코딩하기 때문에 아마도 대답은 "both"입니다 ...

+1

'LLVM'은 'LLVM 백엔드를 사용하는 GCC'를 읽습니다. LLVM 자체는 컴파일러가 아니라 백엔드 기계 코드 생성기입니다. –

+0

@ 좋은 정리, 감사합니다. –

+1

애플은 LLVM의 프론트 엔드 인 clang을 개발 중이다. GCC는이 경로에서 전혀 사용되지 않습니다. 하지만 아직 프로덕션 사용을위한 준비가되어 있지 않습니다. – ephemient

2

Objective-C는 C의 변형입니다. 원시 코드로 컴파일됩니다.

+0

Objective-C 프로그램의 중간에 C 또는 C++ 코드를 사용하는 것과 같이 맛있게 더러운 것을 허용합니다! –

4

예, Objective-C는 컴퓨터 코드로 컴파일됩니다.

Objective-C 컴파일러는 Linux 용이지만 Cocoa는 OS X 전용 기술입니다. GNUstep이라는 오픈 대체품에 대해 들어 봤지만 그것에 대해 많이 알지 못합니다.

+1

나는 GNUstep 개발자로서 일해 왔지만, SVN commit 플래그는 아직 가지고 있지만 실제로는 그렇게하지 못했습니다. 좋은 시스템이고 Cocoa와의 소스 호환성이 뛰어나지 만 임의의 Mac 앱을 사용하고 'make'라고 입력하면 잘못 생각할 수 있습니다. –

7

네이티브입니다.

Objective-C로 작성된 NeXT OpenStep 사양의 오픈 소스 구현 인 GNUstep이 있습니다. Cocoa API의 구현은 직접적인 일치가 아니므로 이식을하지 않고 직접 컴파일 할 수는 없습니다.

+1

7 년 후 좋은 업데이트를 제공합니다. GNUStep은이 시점에서 OpenStep/Cocoa를 미러링하는 작업을 훌륭하게 수행합니다. – Qix

관련 문제