Làm cách nào để chúng tôi có thể khôi phục ppc / ppc64 cũng như hỗ trợ đầy đủ 10.4 / 10.5 SDK cho Xcode 4?


93

Vì Apple chỉ xuất xưởng SDK 10.6 với Xcode4 nên việc phát triển các ứng dụng PPC với Xcode4 trở nên bất khả thi. Mặc dù có thể phát triển các ứng dụng với Xcode4 cũng có thể chạy trên hệ thống 10.5 và thậm chí có thể trên hệ thống 10.4 (bằng cách chọn SDK 10.6, nhưng mục tiêu triển khai 10.5 hoặc 10.4), chúng sẽ chỉ chạy trên máy Mac của Intel vì bạn cần ít nhất SDK 10.5 cho xây dựng các ứng dụng PPC.

Hơn nữa, có một số trường hợp hiếm gặp, trong đó bạn thực sự cần phải xây dựng dựa trên SDK trước 10.6 để được hỗ trợ nền tảng đầy đủ, ví dụ: nếu một số chức năng không dùng nữa đã biến mất hoàn toàn khỏi SDK 10.6, nhưng bạn sẽ phải sử dụng nó và liên kết động thì không luôn là lựa chọn tốt nhất trong những trường hợp đó. Ngoài ra, việc liên kết với SDK cũ hơn đôi khi sẽ dễ dàng phát triển vì chức năng mà bạn không được phép sử dụng, vì nó sẽ gây ra sự không tương thích với các phiên bản hệ điều hành trước đó, sẽ không khả dụng và bất kỳ nỗ lực nào để sử dụng nó ngay lập tức dẫn đến lỗi trình biên dịch hoặc trình liên kết.

Cuối cùng nhưng không kém phần quan trọng Apple cũng đã loại bỏ hỗ trợ GCC 4.0 khỏi Xcode4, điều này có thể cần thiết cho một số phần mềm nhất định để xây dựng chính xác và Apple chưa bao giờ cho phép biên dịch phần mềm với GCC 4.2 khi sử dụng SDK 10.4, mặc dù tôi khó tin rằng điều này thực sự sẽ gây ra bất kỳ vấn đề nào, sau khi tất cả phần mềm được xây dựng với GCC 4.2 và SDK 10.6 cũng có thể chạy trên Mac OS 10.4 mà không gặp bất kỳ sự cố nào miễn là mục tiêu triển khai đã được đặt chính xác và không có chức năng nào không khả dụng trong MacOS 10.4 được sử dụng.

Tất nhiên bạn luôn có thể cài đặt song song Xcode3 bên cạnh Xcode4, nhưng điều đó có nghĩa là bạn phải từ bỏ tất cả các tính năng mới (tuyệt vời?) Của Xcode4 và tiếp tục làm việc với Xcode3 IDE đã lỗi thời. Chắc chắn sẽ tốt hơn nhiều nếu bạn cũng có thể quản lý tất cả các dự án cũ của mình trong cùng một IDE với các dự án mới của bạn và hưởng lợi từ bất kỳ tính năng mới nào có sẵn. Không phải tất cả các dự án đều có thể được thực hiện 10.6 hoặc chỉ Intel trong tương lai gần. Hơn nữa, tôi nghiêm khắc phản đối việc bãi bỏ hỗ trợ cho các nền tảng cũ hơn so với mức thực sự cần thiết.

Chúng tôi có thể khôi phục chức năng này cho Xcode4 không?

Câu trả lời:


111

Câu trả lời nhanh chóng là: Có, chúng tôi có thể!

Trước khi tôi đến phần " cách nó được thực hiện ", đây là một số lưu ý về bản vá / hack / sửa lỗi của tôi. Ngay từ đầu các mục tiêu chính đã là:

  1. Giữ tất cả các sửa đổi ở mức tối thiểu tuyệt đối.
    Chúng tôi muốn giữ các thiết lập Xcode càng ban đầu càng tốt.

  2. Bằng mọi cách, hãy cố gắng tránh vá hoặc sửa đổi bất kỳ tệp nào.
    Chúng tôi muốn tất cả các tệp được giữ nguyên và giữ nguyên nội dung ban đầu của chúng.

  3. Cố gắng tránh di chuyển hoặc sao chép tệp xung quanh, trừ khi thực sự cần thiết.

Tôi đã có thể giữ tất cả những mục tiêu đó. Hầu hết mọi thứ được thực hiện bằng cách tạo các liên kết tượng trưng. Chỉ một liên kết biểu tượng hiện có duy nhất phải được thay thế và chúng tôi sẽ sao lưu nó trước khi thay thế, đề phòng.

Nếu bạn không phải là chuyên gia về hoạt động của thiết bị đầu cuối, tôi thực sự khuyên bạn nên sao chép / dán tất cả các lệnh đầu cuối từ thư trả lời của tôi đến thiết bị đầu cuối của bạn, để tránh lỗi chính tả. Hãy nhớ rằng thậm chí khoảng cách, trích dẫn và đặc biệt là viết hoa có thể quan trọng. Sao chép / dán chúng từng dòng, không bao giờ nhiều hơn một dòng cùng một lúc và nhấn quay lại sau mỗi dòng đã dán để thực hiện lệnh. Nếu bất kỳ thao tác nào nhắc bạn nhập mật khẩu, đây sẽ là mật khẩu của người dùng quản trị viên hiện đang đăng nhập (các tổ hợp phím của bạn không được hiển thị khi nhập, điều này là bình thường, đừng lo lắng, chỉ cần tiếp tục nhập mật khẩu và nhấn trở lại; lại -thử nếu bạn có lỗi chính tả và được nhắc lại).

Điều kiện tiên quyết

Trước khi chúng ta có thể bắt đầu, hãy đảm bảo các điều kiện sau là đúng:

  • Bạn đã đăng nhập với tư cách là người dùng quản trị viên.
  • Bạn đã khởi động Terminal.app (Ứng dụng / Tiện ích) và một cửa sổ đầu cuối đang mở.
  • Bạn có sẵn bản sao của Xcode3 (ví dụ 3.2.5) và hình ảnh đĩa Xcode4 (DMG) hoặc trình cài đặt.
  • Nếu bạn đã cài đặt một trong hai phiên bản Xcode, hãy xem xét gỡ cài đặt nó trước tiên , để bạn có thể bắt đầu với thiết lập mới / sạch. Gỡ cài đặt Xcode sẽ không loại bỏ các tùy chọn, bảng màu hoặc liên kết khóa của bạn. Lý tưởng nhất là bạn nên bắt đầu với một hệ thống không có phiên bản Xcode (không phải 3 hay 4) hiện được cài đặt.

Bước 1: Cài đặt Xcode3

Quan trọng : Không cài đặt gói " Công cụ Hệ thống " hoặc " Phát triển Unix " của Xcode3.
Việc bạn muốn cài đặt " Mac OS X 10.4 SDK " và / hoặc " Tài liệu " là tùy thuộc vào bạn. Nếu đó là Xcode3 với iOS SDK, bạn có cài đặt chúng hay không cũng tùy thuộc vào bạn.

Bạn có thể tự do chọn bất kỳ thư mục đích nào để cài đặt. Đối với hướng dẫn này, tôi đã chọn " / Xcode3 ", nhưng hãy chọn một hướng dẫn khác. Chỉ cần đảm bảo thay đổi tất cả các lệnh đầu cuối cho phù hợp.

Thứ tự của các bước được đưa ra ở đây thường không thực sự quan trọng, nhưng tôi thực sự khuyên bạn không nên hoán đổi bước 1 và bước 2. Xcode luôn cài đặt một vài tệp bên ngoài thư mục đích đã chọn và tin tôi đi, cuối cùng thì bạn muốn Phiên bản Xcode4 của các tệp đó trên đĩa của bạn. Bằng cách cài đặt Xcode3 trước Xcode4, bạn có thể chắc chắn rằng Xcode4 sẽ ghi đè các tệp đó nếu cần. Tôi đã từng hoán đổi bước 1 và bước 2 và cuối cùng tôi gặp một số vấn đề khá lạ có thể liên quan đến thứ tự không chính xác (tôi không thể nói chắc chắn, nhưng sau khi cài đặt lại theo đúng thứ tự, sự cố đã biến mất).

Bước 2: Cài đặt Xcode4

Chọn bất kỳ gói nào bạn thích. Việc cài đặt " Công cụ hệ thống " được khuyến khích, nhưng không hoàn toàn cần thiết (mặc dù hầu hết mọi người sớm hay muộn sẽ bỏ lỡ chức năng đó).

Một lần nữa, hãy chọn bất kỳ thư mục đích nào bạn thích. Đối với hướng dẫn này, tôi đã chọn thư mục đích bình thường " / Developer ", nếu bạn chọn một thư mục khác, hãy thay đổi tất cả các lệnh đầu cuối cho phù hợp.

Bước 3: Khôi phục hỗ trợ SDK 10.4 / 10.5

Chuyển sang cửa sổ dòng lệnh của bạn và chạy các lệnh sau:

cd / Nhà phát triển / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.

Tất nhiên chỉ chạy lệnh cho 10.4u nếu bạn cũng đã cài đặt SDK 10.4 ở bước 1.

Điều này đủ để đưa SDK 10.5 (và có thể là 10.4) trở lại danh sách lựa chọn trong Xcode4. Hãy thử nếu bạn thích. Kích hoạt Xcode4, mở một dự án, thử thay đổi SDK đã chọn. Điều đó thật dễ dàng, phải không? Đảm bảo đóng Xcode4 một lần nữa (ứng dụng, không chỉ cửa sổ) trước khi tiếp tục bước tiếp theo.

Bước 4: Khôi phục hỗ trợ GCC 4.0

Nếu bạn chưa cài đặt MacOS 10.4 SDK hoặc nếu bạn không có kế hoạch sử dụng nó, bạn có thể bỏ qua bước này một cách an toàn và tiếp tục với bước 5.

Để sử dụng SDK 10.4, bạn sẽ phải sử dụng GCC 4.0, GCC 4.2 sẽ không hoạt động. Apple tuyên bố rằng GCC 4.2 không tương thích với SDK 10.4, nếu bạn hỏi tôi, đây là một trò lừa bịp. Tôi đã ghi đè những giới hạn này nhiều lần và chưa bao giờ có vấn đề nhỏ nhất vì nó. Sẽ rất dễ dàng để sửa đổi SDK 10.4 để Xcode cho phép bạn sử dụng GCC 4.2 cho nó, nhưng mục tiêu của tôi là tránh tất cả các sửa đổi tệp, vì vậy chúng tôi chỉ thêm hỗ trợ GCC 4.0 trở lại Xcode, đó cũng là một điều tốt, bởi vì một số dự án thực sự phụ thuộc vào GCC 4.0 (ví dụ: có một số lỗi trong GCC 4.2 ngăn mã hợp lệ nội tuyến hợp lệ để biên dịch mà không có lỗi, trong khi cùng một mã biên dịch hoàn hảo trên GCC 4.0 và GCC 4.4).

Quay lại thiết bị đầu cuối:

cd / Developer / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.

cd / Developer / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.

Ngay bây giờ, chúng tôi đã khôi phục hỗ trợ GCC 4.0 đầy đủ ngoại trừ thực tế là GCC 4.0 vẫn không thể chọn được trong Xcode4. Đó là vì Xcode4 không còn trình cắm thêm trình biên dịch GCC 4.0 nữa. May mắn thay, trình cắm Xcode3 cũng hoạt động trong Xcode4, chỉ có điều vị trí đã thay đổi hoàn toàn. Apple hiện đã giấu những plug-in đó sâu trong một gói và chỉ những plug-in ở đó mới hoạt động được, việc đặt chúng về vị trí cũ dường như không có tác dụng gì.

cd / Nhà phát triển / Thư viện / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-in
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin".

Bây giờ hãy kích hoạt lại Xcode4, mở một dự án và thử chọn trình biên dịch. Bạn sẽ có GCC 4.0 trở lại trong danh sách. Bây giờ bạn thực sự đã có thể chọn SDK 10.4 hoặc 10.5, GCC 4.0 và bạn sẽ không gặp vấn đề gì khi tạo tệp nhị phân PPC. Chỉ cần chọn " Khác ... " cho cài đặt xây dựng " Kiến trúc " và nhập " ppc " theo cách thủ công , sau đó thay đổi " Kiến trúc hợp lệ " để bao gồm cả " ppc ". Chúng tôi gần như đã hoàn thành, ngoại trừ việc cố gắng tạo tệp nhị phân PPC bằng GCC 4.2 và SDK 10.5 sẽ vẫn không thành công.

Bước 5: Khôi phục hỗ trợ của PPC cho GCC 4.2

Vì Apple chỉ hỗ trợ nền tảng Intel trong Xcode4 nên không phải tất cả các công cụ GCC 4.2 đều được xây dựng với sự hỗ trợ của PPC. Có một công cụ quan trọng không có hỗ trợ PPC, công cụ này được đặt tên là " as " và nó là GNU Assembler. Để biên dịch mã nhị phân ppc / ppc64 với GCC 4.2, chúng ta cần sử dụng phiên bản " as " có hỗ trợ ppc / ppc64. Đây là tệp duy nhất (thực sự nó cũng là một liên kết biểu tượng) trước tiên chúng ta phải chuyển sang một bên (tạo một bản sao lưu) trước khi chúng ta có thể thay thế nó bằng một liên kết biểu tượng:

cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s / Xcode3 / usr / bin / as.

Bước 6: Không có Bước 6

Đó là tất cả mọi người. Xem xét điều đó dễ dàng như thế nào, bạn có thể tưởng tượng rằng Apple chắc chắn đã không bỏ hỗ trợ SDK 10.4 / 10.5 hoặc ppc / ppc64 hoặc GCC 4.0 vì đây là một điều cần thiết, họ đã bỏ tất cả những điều đó vì họ muốn bỏ nó.

Tôi hy vọng thiết lập này hoạt động tốt cho bạn cũng như cho tôi. Tôi đã có thể biên dịch tất cả các dự án cũ của mình trong Xcode4 mà không có bất kỳ thay đổi lớn nào, ngoại trừ việc phải thay đổi đường dẫn tìm kiếm ở đây và ở đó.

Tái bút:
Tôi trả lời câu hỏi của chính mình ở đây có vẻ lạ, nhưng vì tôi đã tự mình tìm ra cách giải quyết vấn đề này, tôi muốn chia sẻ kiến ​​thức của mình với cộng đồng, vì tôi tin rằng đây thực sự là đầu vào có giá trị tất cả các nhà phát triển MacOS ngoài đó. Câu hỏi này đã được hỏi rất nhiều lần ở rất nhiều nơi và cho đến nay tôi chưa bao giờ thấy ai đưa ra cách sửa chữa tương tự. Chia sẻ sự giàu có, truyền bá kiến ​​thức và như vậy, bạn biết tôi muốn nói gì.


Nếu bạn vẫn có vấn đề / câu hỏi:

Nếu bạn có thêm câu hỏi liên quan đến chủ đề này hoặc nếu bạn vẫn gặp vấn đề để xây dựng các dự án cũ của mình một cách chính xác, vui lòng thực hiện những gì Stack Overflow đã được thiết kế cho: Nhấp vào "Đặt câu hỏi" ở góc trên bên phải của trang này và tạo một câu hỏi mới . Bằng cách đó, cả cộng đồng có thể giúp bạn giải quyết những vấn đề đó, vì các vấn đề có thể không trực tiếp (thậm chí có thể không gián tiếp) liên quan đến vụ hack này.

Tôi khuyên bạn nên đề cập đến thực tế là bạn đã áp dụng hack này ngay từ đầu câu hỏi của bạn. Có thể bạn thậm chí muốn liên kết trực tiếp đến câu hỏi này để những người chưa bao giờ nghe nói về bản hack này có thể dễ dàng tra cứu. Nếu không, hầu hết mọi người sẽ khá bối rối khi bạn đề cập đến SDK 10.4 / 10.5, PPC hoặc GCC 4.0 kết hợp với Xcode4, vốn chính thức hỗ trợ cả hai thứ này. Bạn có thể nhận được những bình luận khá ngu ngốc thay vì những câu trả lời đàng hoàng nếu bạn quên đề cập đến vụ hack này.

Vui lòng không đăng câu hỏi hoặc vấn đề của bạn ở đây dưới dạng trả lời hoặc nhận xét. Đăng chúng dưới dạng câu trả lời sẽ không có ý nghĩa gì vì chúng không phải là câu trả lời và không có cách nào để mọi người có thể trả lời lại bạn, nếu không thì sử dụng nhận xét và nhận xét có thể không cung cấp đủ chỗ cho câu trả lời phù hợp cho câu hỏi của bạn hoặc một giải pháp phù hợp cho bạn vấn đề. Và đăng chúng dưới dạng nhận xét có nghĩa là bạn bị giới hạn rất ít chỗ và việc theo dõi các bình luận trả lời sẽ khó khăn vì các bình luận không có hệ thống phân cấp giống như cây (hơn nữa chúng sẽ vẫn cung cấp rất ít chỗ cho các câu trả lời / giải pháp phù hợp). Cảm ơn bạn.

Tất nhiên các loại nhận xét khác cũng như câu trả lời tốt hơn cho câu hỏi ban đầu luôn được hoan nghênh ;-)


6
Đây là một ủng hộ. Tôi có thể sẽ sao chép các SDK cũ và các tệp trình biên dịch thay vì chỉ liên kết chúng với nhau để có thể gỡ cài đặt phần còn lại của Xcode3. Không phải vì tôi yêu Xcode4; chỉ vì tôi cần không gian đĩa. Cảm ơn!
Ivan Vučica

Tôi không thể làm việc này. Vui lòng xem câu hỏi SO của tôi: stackoverflow.com/questions/5409860/…
paleozogt Ngày

Ngoài ra, để xây dựng gcc 4.0 cho các mục tiêu i686, tôi phải làm như sau: sudo ln -s /Xcode3/usr/libexec/gcc/i686-apple-darwin10/4.0.1 / Developer / usr / libexec / gcc / i686-apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / Developer / usr / lib / gcc / i686- apple-darwin10 / sudo ln -s /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc/i686-apple-darwin10/4.0.1/ / usr / lib / gcc / i686-apple-darwin10 /
Mark Carey

2
Dòng này for SRC_FILE in /Xcode3/usr/bin/*4.0*; do sudo ln -s "$SRC_FILE" .; donecó thể được đơn giản hóa đểsudo ln -s /Xcode3/usr/bin/*4.0* .
Adam Rosenfield

1
@cullub Truy cập developer.apple.com , đăng nhập bằng ID nhà phát triển của bạn, chọn "SDK", cuộn xuống và chọn "Xcode", chọn "Tải xuống", cuộn xuống và chọn "Công cụ bổ sung", tìm kiếm "Xcode 3" trong trường tìm kiếm.
Mecki

15

Một cách dễ dàng khác chỉ với Xcode4, Xcode3 không còn cần thiết nữa.

$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
$ sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin

CHỈNH SỬA:

Đối với Xcode 4.1,

sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /Developer/usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/libexec/gcc/darwin/ppc /usr/libexec/gcc/darwin
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-cpp-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-cpp-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-gcc-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-gcc-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/powerpc-apple-darwin10-g++-4.2.1 /Developer/usr/bin/powerpc-apple-darwin11-g++-4.2.1
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/lib/gcc/powerpc-apple-darwin10 /Developer/SDKs/MacOSX10.6.sdk/usr/lib/gcc

Bạn chỉ có thể sử dụng gcc-4.2 cho PowerPC. Và tùy chọn “-isysroot /Developer/SDKs/MacOSX10.6.sdk” là bắt buộc, vì SDK 10.7 không hỗ trợ PowerPC nữa.


3
LOL, vì vậy apple hỗ trợ PPC trong trình biên dịch iOS :-P Tuy nhiên, bạn có thể lưu ý rằng điều này sẽ chỉ khôi phục khả năng tương thích của PPC, nhưng nó sẽ không khôi phục hỗ trợ SDK hoặc GCC4.0. Vẫn có giá trị ủng hộ.
Mecki

Rất khó và đơn giản hơn những điều trên, yêu cầu tối thiểu tuyệt đối.
Diziet

Bật chuỗi công cụ PowerPC trên Xcode 4.1 . chỉ gcc-4.2. Nó yêu cầu tùy chọn "-isysroot /Developer/SDKs/MacOSX10.6.sdk", vì SDK 10.7 không có tiêu đề cho PowerPC nữa.
Kazuki Sakamoto

stackoverflow.com/questions/11989007 có liên quan để lấy SDK 10.6. tức là nó là trong Xcode 4.1
fommil

8

Tôi đã tập hợp tất cả thông tin từ trang này, Mac OS X Hints, splhack.org và các nguồn khác được trích dẫn tại đây và tập hợp một bộ tập lệnh BASH tự động hóa quá trình khôi phục hỗ trợ PPC và GCC 4.0 bằng cách sử dụng Cài đặt XCode 3 hoặc chỉ các tệp nền tảng iPhone riêng của XCode 4.

Như mọi khi, hãy sử dụng một cách thận trọng! và vui lòng đóng góp bất kỳ bản sửa lỗi hoặc cải tiến nào. Các tập lệnh này chỉ được thử nghiệm trên hệ thống của riêng tôi kể từ khi đăng bài này.

Bạn có thể tải chúng xuống từ GitHub:


Wow, khá tuyệt :-) Tôi muốn tự mình tạo một kịch bản như vậy, nhưng không bao giờ có thời gian cho nó. Cám ơn vì đã chia sẻ nó với chúng tôi.
Mecki

4

Nếu bạn muốn gcc cũng hoạt động từ dòng lệnh, (cũng như ở trên), bạn cũng cần phải:

cd /usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s /Xcode3/usr/bin/as .

3

Điều này vẫn hoạt động với Xcode 4.3.2 từ AppStore - phiên bản mà mọi thứ đều nằm trong một gói Ứng dụng. Như trong gợi ý ban đầu, hãy cài đặt Xcode 3.2.6 trước * và sau đó tải xuống Xcode 4 từ AppStore. Sau đó thực hiện phép thuật liên kết biểu tượng sau:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
ln -s /Developer/Xcode3.2.6/SDKs/MacOSX10.5.sdk .
cd /Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2/bin/
ln -s /Developer/Xcode3.2.5/usr/llvm-gcc-4.2/bin/powerpc-apple-darwin10-llvm-g* .
mv powerpc-apple-darwin10-llvm-gcc-4.2 powerpc-apple-darwin11-llvm-gcc-4.2
mv powerpc-apple-darwin10-llvm-g++-4.2 powerpc-apple-darwin11-llvm-g++-4.2

Hai dòng cuối cùng đổi tên darwin10 thành darwin11 trong liên kết biểu tượng - Tôi đoán các phiên bản OS X trong tương lai sẽ yêu cầu cập nhật điều này sao cho phù hợp.

  • Để cài đặt Xcode 3.2.x trên Lion, hãy gắn hình ảnh đĩa Xcode, mở Terminal, nhập các lệnh (sử dụng bash hoặc các lệnh tương đương nếu bạn đã thay đổi trình bao mặc định của mình):

    export COMMAND_LINE_INSTALL = 1 open "/ Volumes / Xcode and iOS SDK / Xcode and iOS SDK.mpkg"

Bạn cũng sẽ cần đặt đồng hồ về một ngày trước ngày 31 tháng 3 năm 2012, nếu không các chứng chỉ bảo mật sẽ không được xác thực trong khi cài đặt. Bạn có thể an toàn thay đổi ngày trở lại sau khi cài đặt rõ ràng!


2

Trong trường hợp ai đó cần khôi phục lại SDK cũ và trình biên dịch PPC trong Xcode 4.3 và 4.5, đây là một tập lệnh mà tôi đã nghĩ ra. Lưu ý rằng bạn cần đặt đường dẫn đến gói ứng dụng Xcode và đường dẫn đến cài đặt Xcode 3.2.6 ở đầu tập lệnh.

#!/bin/bash

XCODE="/Applications/Xcode45-DP1.app"
XCODE3="/Xcode3"

# restore SDKs
cd "$XCODE/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs"
sudo ln -s "$XCODE3/SDKs/MacOSX10.4u.sdk" .
sudo ln -s "$XCODE3/SDKs/MacOSX10.5.sdk" . 
sudo ln -s "$XCODE3/SDKs/MacOSX10.6.sdk" . 

# restore gcc 4.0
cd "$XCODE/Contents/Developer/usr/bin"
sudo ln -s "$XCODE3/usr/bin/"*4.0* .
sudo ln -s "powerpc-apple-darwin10-g++-4.0.1" "powerpc-apple-darwin11-g++-4.0.1"
sudo ln -s "powerpc-apple-darwin10-gcc-4.0.1" "powerpc-apple-darwin11-gcc-4.0.1"

# restore Xcode option
cd "$XCODE/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer/Library/Xcode/Plug-ins"
sudo ln -s "$XCODE3/Library/Xcode/Plug-ins/GCC 4.0.xcplugin" . 

Bạn không cần liên kết biểu tượng 10.6 SDK nếu bạn đang sử dụng Xcode 4.3 vì nó đi kèm với một.

Ngoài ra, tập lệnh không khôi phục gcc 4.2 vì có rất nhiều xung đột tên tệp thực hiện điều đó. Mục tiêu của tôi là khôi phục trình biên dịch PPC và 4.0 đủ tốt cho tôi.


2

Frédéric Devernay có một dự án GitHub được gọi là xcodelegacy hoạt động tuyệt vời đối với tôi trên Xcode 5.1.1 và cần rất ít công việc để hoàn thành, chỉ cần tải xuống một số.

Bằng cách sử dụng dự án của anh ấy, tôi đã quản lý để tạo các tệp nhị phân chung chứa cả kiến ​​trúc ppc và i386 được biên dịch với SDK 10.4 sử dụng GCC 4.0, tất cả đều từ bên trong Xcode 5.1.1 chạy trên Yosemite.

Tôi đã tự xác minh rằng các mã nhị phân phổ quát tạo ra hoạt động tốt trên Leopard 10.5 và trên chính Yosemite.

Trang chủ tại đây: http://devernay.free.fr/hacks/xcodelegacy

Dự án trung tâm Git tại đây: https://github.com/devernay/xcodelegacy


1

Sẽ rất hữu ích nếu có một gói để chỉ cài đặt các tệp này vào một bản triển khai XCode 4. (hoặc một quả bóng dầu).

FYI: 3.2.6 của Xcode3 không bao gồm kiến ​​trúc như với ppc. Nhưng tôi đã có một bản sao lưu của Leopard trên máy tính của mình. Vì vậy, tôi đã sao chép cái đó, có vẻ như hoạt động. (Sử dụng / usr / libexec / gcc / darwin / ppc / as).

Xem xét rằng cả gcc và cũng như mã nguồn mở, thứ duy nhất có thể không thể phân phối lại là plugin xcode và SDK 10.4 phải không?


Tôi không phải là chuyên gia về câu hỏi cấp phép; "as -v" cho biết "Phiên bản Apple Inc cctools-795 ~ 45, trình hợp dịch GNU phiên bản 1.38", tuy nhiên, ngay cả khi Apple đã sửa đổi mã nguồn của "as", nó vẫn được cấp phép theo GPL (mã GPL được sửa đổi là tự động Lại mã GPL), do đó nếu GPL cho phép bạn làm điều đó, bạn sẽ ổn.
Mecki

Được rồi, tôi cho rằng lý do của tôi tại sao chúng ta phải thay thế "as" là sai. "As" của Xcode 3.2.6 dường như cũng hoạt động, mặc dù nó chỉ là của Intel, nhưng nó dường như vẫn có thể tạo đầu ra lắp ráp ppc. Tôi sẽ sửa câu trả lời đầu tiên của mình. Cảm ơn vì đã chỉ ra điều này!
Mecki

Trên thực tế, ít nhất là từ dòng lệnh nó không. Nó tiếp tục phàn nàn cho đến khi tôi lấy nó từ bản sao lưu Leopard của tôi.
Jason Kenney,
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.