2013-04-28 34 views
5

Tôi có một máy tính cũ không thể nâng cấp lên Lion, nhưng tôi muốn sử dụng nó để mã hóa trong khi vẫn tận dụng cú pháp như các ký tự instancetype và Objective-C. Có ai đã cố gắng để biên dịch một Clang và LLVM mới hơn để sử dụng với một Xcode cũ hơn và đã thành công?Có thể biên dịch phiên bản LLVM mới hơn và sử dụng nó với Xcode không?

+1

nhưng không được hỗ trợ chính thức. google "clang trunk xcode plugin" để bắt đầu. – justin

+1

@justin Tôi dự định sẽ đi theo con đường bị đánh bại trên con đường này. Cảm ơn bạn đã chỉ cho tôi theo hướng đó. –

+0

bạn được chào đón. may mắn thay, những người khác đã mô tả nó và cung cấp các plugin để bạn sử dụng. – justin

Trả lời

8

Có nhiều cách khác nhau để sử dụng phiên bản LLVM/Clang mới nhất.

(1) Plugins, như mô tả trong các ý kiến ​​trên, ví dụ: http://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/

Như đã chỉ ra trong bài viết trên blog được liên kết, bạn có thể nhận lỗi/cảnh báo từ cú pháp real-time Xcode của kiểm tra như Xcode sử dụng một phiên bản cũ hơn của libclang (thêm vào đó dưới (3)). Nó có khả năng biên dịch tốt, nhưng mã nguồn chỉnh sửa sẽ không có nhiều niềm vui.

(2) Đặt trình biên dịch qua CC cờ. Đây có lẽ là giải pháp dễ nhất/nhanh nhất và cài đặt chỉ ảnh hưởng đến một dự án. Đi tới Cài đặt Xây dựng của dự án, chọn "Thêm Cài đặt Xây dựng" -> "Thêm Cài đặt do Người dùng Xác định" (trong Xcode 5, được ẩn trong menu Trình biên tập), đặt tên là CC và đặt giá trị cho đường dẫn của bạn phiên bản của Clang. Làm việc tốt cho tôi, nhưng với (1), bạn có thể nhận được xung đột với báo cáo lỗi trực tiếp, đặc biệt nếu bạn muốn sử dụng cú pháp mới như chữ, hoặc vượt qua cờ để cảnh báo rằng phiên bản cũ không hiểu.

(3) Thay thế trình biên dịch. Đảm bảo bạn sao lưu bất kỳ tệp nào trước khi thay thế chúng. Có hai tệp cần được thay thế: nhị phân Clang và libclang.dylib. Truy cập /Applications/Xcode.app/ -> Tùy chọn-Nhấp -> "Hiển thị Nội dung Đóng gói" ->/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr. clang nằm trong số /bin, libclang.dylib nằm trong số /lib.

Cả hai tệp nhị phân có thể được biên dịch từ nguồn (tất cả sẽ cung cấp cho bạn phiên bản mới hơn) hoặc chỉ được sao chép từ gói Xcode mới nhất. Tôi gặp rắc rối khi sử dụng phiên bản libclang tùy chỉnh, nhưng tôi nghi ngờ vấn đề bắt nguồn từ những sửa đổi của tôi ở đó. Nếu nghi ngờ, hãy sử dụng libclang từ phiên bản Xcode mới hơn.

Lưu ý: Biến thể libclang đã được sửa đổi của tôi sử dụng ARC và do đó không tương thích với Xcode 4 chạy bằng bộ sưu tập rác. Bản thân Xcode 5 sử dụng ARC nên vấn đề đã biến mất. Nếu bạn biên soạn libclang chưa được sửa đổi, bạn không nên gặp vấn đề trong cả hai mã Xcode 4 hoặc 5.

+1

Thông tin tuyệt vời, cảm ơn bạn. –

Các vấn đề liên quan