OS X에서 Objective-C는 원시 코드 또는 바이트 코드로 컴파일합니까?Objective-C는 원시 코드 또는 바이트 코드로 컴파일됩니까?
Linux에서 Objective-C 프로그램을 컴파일 할 수 있습니까?
OS X에서 Objective-C는 원시 코드 또는 바이트 코드로 컴파일합니까?Objective-C는 원시 코드 또는 바이트 코드로 컴파일됩니까?
Linux에서 Objective-C 프로그램을 컴파일 할 수 있습니까?
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"입니다 ...
'LLVM'은 'LLVM 백엔드를 사용하는 GCC'를 읽습니다. LLVM 자체는 컴파일러가 아니라 백엔드 기계 코드 생성기입니다. –
@ 좋은 정리, 감사합니다. –
애플은 LLVM의 프론트 엔드 인 clang을 개발 중이다. GCC는이 경로에서 전혀 사용되지 않습니다. 하지만 아직 프로덕션 사용을위한 준비가되어 있지 않습니다. – ephemient
Objective-C는 C의 변형입니다. 원시 코드로 컴파일됩니다.
Objective-C 프로그램의 중간에 C 또는 C++ 코드를 사용하는 것과 같이 맛있게 더러운 것을 허용합니다! –
예, Objective-C는 컴퓨터 코드로 컴파일됩니다.
Objective-C 컴파일러는 Linux 용이지만 Cocoa는 OS X 전용 기술입니다. GNUstep이라는 오픈 대체품에 대해 들어 봤지만 그것에 대해 많이 알지 못합니다.
나는 GNUstep 개발자로서 일해 왔지만, SVN commit 플래그는 아직 가지고 있지만 실제로는 그렇게하지 못했습니다. 좋은 시스템이고 Cocoa와의 소스 호환성이 뛰어나지 만 임의의 Mac 앱을 사용하고 'make'라고 입력하면 잘못 생각할 수 있습니다. –
너무 멀리 들어가면, 실행중인 기계 코드의 어셈블리 해석을 볼 수 있습니다! –