Scoping Your Transition Projects

OSXDEV

Jump to: navigation, 찾기

_ 2006년 3월 20일 번역중 westside _

애플은 현재 파워맥 기반의 맥 만큼 인텔 베이스 맥을 선적하고 있습니다. 만약 당신이 PowerPC 프로세서상에서 가능한 응용프로그램을 작성했다면, 많은 사용자들이 사용하게 하기 위해서 Intel-based Macintosh 상에서 실행 가능한 어플리케이션의 버젼을 만들어야 합니다. 그러나 당신은 당신의 어플리게이션이 PowerPC 상세서도 계속 유지되기를 원하며, 이 페이지는 당신이 무엇을 필요로하는지에 대한 이해를 도울 것입니다.

작업의 상당량은 당신이 작성한 코드와 컴파일러의 형태에 의존을 합니다. 가장 공통적인 3가지 변환의 방법은 변환챠트를 통해 볼수 있습니다. 자바, 애플스크립트,시스템 구조에 독립적인 언어로 구성된 프로젝트들은 특별한 작업을 필요로 하지 않습니다. (만약 C, C++, or Objective-C의 조합으로 구성된것에 대해서는 경고합니다.) 나머지 다른 두 방법은 유니버셜 바이너리로의 빌드를 요구합니다. 유니버셜 바이너리는 PowerPC와 Intel-based Macintosh 상에서 동시에 구동 가능한 어플리케이션, 라이브러리, 그리고 프레임웍을 말합니다.. 실행 바이너리를 빌딩하는데 있어 유니버셜 옵션(기능)을 추가함으로 쉽게 설정할 수 있습니다 Getting your code to that point is what requires most of the work. 그 포인트로 당신의 코드를 얻는 것은 무엇이 대부분의 일을 요구하는지입니다.

그림:a_osx_Dtrc_map.jpg

여기서 여러분이 변환작업에 있어서 필요로 하는 각각 방법과 작업을 도와줄수 있는 자료들에 대한 설명을 보실수 있습니다. 당신이 응용프로그램을 작성하는데 있어서 변환방식과는 관계없이, 두 아키텍쳐상에서 그것을 검사할 필요가 있습니다. 당신은 Intel-based Macintosh 컴퓨터를 구하거나,쿠퍼티노의 ADC Compatibility Labs 사용을 원할것입니다.

목차

[편집] Before You Follow a Transition Path

당신이 어떤 코드를 준비하거나 컴파일하기 전에, PowerPC를 위해 개발된 어플리케이션이 Intel-based Macintosh상에서 실행되지 않을수 있다는 점을 고려해야 합니다. 이는 당신이 자바 개발자이거나 다른 architecture-independent 언어를 사용할지라도 그 사항을을 이해하는 것은 유용합니다.

Universal Binary Programming Guidelines, Second Edition의 다음 부분들을 참고 하세요:

  • Introduction은 변환작업을 시작하는데 필요한 사항들을 보여줍니다.
  • Architectural Differences는 이식 가능한 코드의 인식과 작성을 도울것입니다.
  • Swapping Bytes는 byte ordering 근본적인 구조적 차이와 이 논점을 다루는 방법에 대한 상세한 정보를 제공합니다

구조상의 차이에 따른 byte ordering으로 인해 대부분의 코드는 변경됩니다. 그래서 이장은 내용을 숙지해야 할것입니다.

이 같은 문서에서, 특정 경우에 대한 가이드라인은 대충 훑어 보십시오 거기에서 설명된 대부분의 상황은 실제로 당신의 어플리케이션에 적용되지 않을 것입니다. 그러나 그것은 무엇이 당신의 코드에 영향을 미칠수 있는지 알 수 있습니다. 그것은 후에 당신에게 많은 디버깅 시간을 절약할 수 있습니다.

[편집] Mac OS X Projects That Use AltiVec Code

AltiVec 코드는 PowerPC 아키텍쳐에서 특별한 것입니다.당신은 다음의 코스중에 하나를 필요로 합니다.

  • AltiVec 코드를 Accelerate 프레임웍에 대한 호출로 교체하세요.

이것은 좋은 해결책입니다.왜냐하면 운영체제가 당신을 위해 chip-specific optimizations를 수행하게 시키기 때문입니다. 당신은 Mac OS X가 구동되는 특정 하드웨어에 대해서 신경쓰지 않으셔도 됩니다.

  • Intel-based Macintosh 컴퓨터를 위해 architecture-specific 코드를 쓰세요.

당신이 Accelerate가 제공할 수 없는 optimizations를 필요로 할 때 이 방법을 추천합니다.

Universal Binary Programming Guidelines, Second Edition에서 에 Preparing Vector-Based Code를 참고하세요.

[편집] Mac OS X Projects That Compile Using CodeWarrior

당신이 CodeWarrior 작성한 프로젝트들은 Xcode 2.1 혹은 그 이후 버전으로 옮길 필요가 있습니다. 자세한 사항은 Porting CodeWarrior Projects to Xcode. 을 참고 하세요 Xcode 2.1나 그 이후의 것으로 프로젝트를 옮기고 난 후, universal binary을 생성하기 위해서 적절한 설정에 대한 정보를 찾아서 참고해야 합니다.

  • Universal Binary Programming Guidelines, Second Edition의 Building a Universal Binary를 참조하세요

만약 PowerPlant프레임웍을 사용한 프로젝트라면 Universal Binary Programming Guidelines, Second Edition의 Using PowerPlant를 보세요

[편집] Mac OS X Projects That Compile Using Xcode

Xcode 2.0이나 그 이전의 것으로 프로젝트를 작성했다면,Xcode 2.1 혹은 그 이후 버전으로 옮길 필요가 있습니다. Xcode 2.1으로 시작하면서, GCC 4.0을 컴파일러로 사용하고 있습니다. 당신이 접할 대부분의 논점은 컴파일러 사용하는 것에 관계된 것들입니다. Porting to GCC 4.0 Release Notes를 보세요

Xcode2.1 혹은 그 이후버전을 이용하는 당신의 프로젝트가 성공적으로 컴파일되면, universal binary을 생성하기 위해서 적절한 설정에 대한 정보를 찾아서 참고해야 합니다.

  • Universal Binary Programming Guidelines, Second Edition 의 Building a Universal Binary를 참조하세요

만약 PowerPlant프레임웍을 사용한 프로젝트라면 Universal Binary Programming Guidelines, Second Edition의 Using PowerPlant를 보세요

[편집] Open Source and UNIX Projects That Compile Using Makefiles

GCC4.0 혹은 그 이후 버전을 이용해서 컴파일되는 makefiles로 빌드되는 Application들

당신이 4.0보다 더 이른 GCC의 버전을 사용하고 있다면, 당신은 GCC 4.0까지 바꿀 필요가 있습니다.

Porting to GCC 4.0 Release Notes를 보세요.

GCC 4.0이 또는 그 이후의 것을 이용한다면, universal binary을 생성하기 위해서 적절한 cross-architecture 세팅을 만들 필요가 있습니다

당신은 다음의 것들을 통해서 cross-architecture 세팅과 일반적인 universal binary을 생성하는데 있어서 GNU Autoconf macro의 사용에 관한 논점에 대한 정보를 얻을수 있습니다.

  • Porting UNIX/Linux Applications to Mac OS X의 Compiling for Multiple Architectures
  • Universal Binary Programming Guidelines, Second Edition 의 Building a Universal Binary

[편집] Java, AppleScript, Python, JavaScript, Shell Scripts and other Architecture-Independent Languages

architecture-independent 언어를 사용하는 코드는 precompiled가 아닙니다.

당신의 자바 어플리케이션이 JNI 라이버러리를 을 사용한다면, non-Java 코드 (C, C++, Objective-C)를 포함하는 라이브러리들을 유니버셜한 라이버러리로 작성해야합니다.

[편집] Testing and Debugging

PowerPC Mac이나 Intel-based Macintosh상에서 유니버설 세팅을 통한 빌드가 변환의 끝이 아닙니다. 작성된 응용프로그램이 모든 해당 환경상에서 적황하게 동작하는 것이 중요합니다. 또한 예기치 않은 수치결과, 틀린 색깔, byte-ordering의 징후와 architecture간의 차이로 인한 오동작등을 Intel-based Macintosh상에서 어플리케이션을 검사할때 찾을 필요가 있습니다. Universal Binary Programming Guidelines, Second Edition의 Troubleshooting 부분 통해 더 많은것들을 찾아낼 수 있습니다.

[편집] Additional Resources

애플은 변환에 관련된 도움을 주기 위해 아래와 같은 자원을 제공합니다

  • Developer Transition Resource Center - Intel-based Macintosh computer의 변환을 목적으로 하는 해당 리소스들
  • ADC Compatibility Labs - Intel-based Macintosh 컴퓨터를 포함하는 다양한 Macintosh 환경상에서 universal binary을 검증을 위해 방문 할수 있는 ADC Compatibility Labs A 설비
  • Xcode Users Mailing List - Mac OS X상에서 에 Xcode 사용상의 문제를 논의할수 있는 포럼