2011-12-29 35 views
15

Trên phiên bản Mac OSX của tôi (Lion 10.7.1, XCode 4.1), có LLVM 3.0svn và Clang 2.1. current versions là LLVM 3.0 và Clang 3.0.Làm thế nào để cập nhật LLVM & Clang trên Mac OSX?

Từ XCode web site, có vẻ như phiên bản mới nhất (4.2.1) vẫn sử dụng LLVM 2.0 và điều này có vẻ là một sai lầm.

Bạn có biết nếu cài đặt XCode mới nhất, tôi sẽ nhận được phiên bản LLVM/Clang mới hơn không?

Bạn có biết bất kỳ vấn đề nào có thể xảy ra installing Clang manually?

Sau khi cài đặt, Clang mới có được tự động sử dụng bởi tất cả các IDE mà tôi có (ví dụ: NetBeans) không?

+2

cũng lưu ý rằng Apple sử dụng phiên bản của riêng mình cho llvm/clang. Vì vậy, Apple LLVM 3.0/clang 3.0 khác với LLvM 3.0 của llvm.org :) Sau này là gần đây hơn. –

Trả lời

8

Nhà cung cấp phần mềm theo truyền thống bảo thủ về việc cập nhật công cụ xây dựng và có lý do chính đáng. Nếu bạn muốn sử dụng các phiên bản công cụ xây dựng được hỗ trợ công khai mới nhất do Apple cung cấp và sửa đổi, bạn nên gắn bó với phiên bản Xcode mới nhất cho bản phát hành OS X mà bạn đang chạy. Thường có những lý do tốt khiến Apple chưa cập nhật các phiên bản mới nhất của các thành phần nguồn mở, như các lỗi nghiêm trọng. Nếu bạn không cần các sửa đổi do Apple cung cấp và không ngại sống ở cạnh - tức là không có sự hỗ trợ từ Apple và có thể (lại) phát hiện ra các vấn đề đã biết - và không có kế hoạch gửi các tệp đã biên dịch sang hệ thống của người khác, bạn có thể cài đặt phiên bản của riêng bạn, ví dụ: /usr/local/bin hoặc bằng cách sử dụng trình quản lý gói của bên thứ ba, như MacPorts http://www.macports.org/ports.php?by=name&substr=clang). Bạn nên chắc chắn không hãy thử thay thế các tệp tại các đường dẫn do Xcode cài đặt. Nó có đáng không? Chỉ bạn mới có thể quyết định điều đó.

+0

Cập nhật: Xcode 4.3.3 hiện tại cho OS X 10.7 có phiên bản mới hơn của 'clang':' Apple clang phiên bản 3.1 (thẻ/Apple/clang-318.0.61) (dựa trên LLVM 3.1svn) '. –

+2

Số phiên bản của Apple không khớp với tiếng kêu vang. Apple clang 3.1 được xây dựng dựa trên nguồn gốc trước khi chú cún 3,1 cuối cùng. Nó thiếu một số tính năng C++ 11 như danh sách khởi tạo. Họ cũng đã tăng phiên bản lên 4.0 trong 4.4DP nhưng nó vẫn là một tính năng cao cấp. –

+0

Đó là FUD, bản phát hành ổn định của clang khá ổn định và các hệ điều hành khác như FreeBSD theo dõi phiên bản mới nhất – jupp0r

8

Trang web không chính xác. Xcode 4.2.1 và 4.2 bao gồm LLVM 3.0 và kêu vang 3.0:

kêu vang --version
Apple phiên bản kêu vang 3.0 (thẻ/Apple/kêu vang-211,12) (dựa trên LLVM 3.0svn)

kêu vang ++ --version
apple phiên bản kêu vang 3.0 (thẻ/apple/kêu vang-211,12) (dựa trên LLVM 3.0svn)

llvm-g ++ --version
i686-apple-darwin11-llvm-g ++ - 4.2 (GCC) 4.2.1 (Dựa trên Apple Inc. xây dựng 5658) (LLVM xây dựng 2336.1.00)

.210

llvm-gcc --version
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Dựa trên Apple Inc xây dựng 5658) (LLVM xây dựng 2336.1.00)

+0

Tôi đang ở trên Xcode 4.4.1 và tôi vẫn thấy: 'Apple clang phiên bản 2.1 (thẻ/Apple/clang-163.7.1) (dựa trên LLVM 3.0svn) Mục tiêu: x86_64-apple-darwin11.4.0 Mô hình chủ đề : posix' –

+0

Tôi đang trên cùng một phiên bản của Xcode nhưng báo cáo chuyển đổi clang: Apple clang phiên bản 4.0 (thẻ/Apple/clang-421.0.60) (dựa trên LLVM 3.1svn) Mục tiêu: x86_64-apple-darwin12. 1.0 Mô hình chủ đề: posix. Có lẽ bạn có phiên bản Xcode cũ hơn vẫn được cài đặt cùng với 4.4.1? Ngoài ra, hãy kiểm tra tab Tải xuống trong tùy chọn của Xcode để xem liệu thành phần Công cụ Dòng lệnh đã được cài đặt hay chưa. –

+0

@JamesMcKinney Bạn có thể cần phải chạy xcode-chọn trên dòng lệnh để trỏ hệ thống của bạn vào phiên bản của clang được cài đặt với phiên bản Xcode mà bạn đã cài đặt. – leecbaker

2

trên Mountain Lion 10.8.2 với XCode 4.6, các phiên bản là:

$ clang --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ clang++ --version 
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn) 
Target: x86_64-apple-darwin12.2.0 
Thread model: posix 

$ llvm-g++ --version 
i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

$ llvm-gcc --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 
Copyright (C) 2007 Free Software Foundation, Inc. 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

Bạn có thể cập nhật XCode cho Lion quá từ App Store của Apple hoặc tài khoản nhà phát triển trực tiếp tải về và cài đặt các công cụ dòng lệnh, mà sẽ cập nhật kêu vang & llvm đến các phiên bản trên.

+0

Theo dự kiến, sau OSX 10.8.3 Xcode 4.6.1 được phát hành có chứa clang-425.0.27 –

1

Phiên bản OS X Update 10.9.2 mang XCode lên phiên bản 5.1 (5B130a), và kêu vang đến ổn định mới nhất (đối với OS X):

$ clang --version 
Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.1.0 
Thread model: posix 

On tôi Mac llvm-gcc và llvm-g ++ là symlink để kêu vang này:

lrwxr-xr-x 1 root wheel  5B 25 Oct 16:48 /usr/bin/llvm-gcc -> clang 
lrwxr-xr-x 1 root wheel  7B 25 Oct 16:48 /usr/bin/llvm-g++ -> clang++ 

R mới nhất của tôi cài đặt được cấu hình để sử dụng llvm-gcc-4.2 sẽ gây ra lỗi khi xây dựng SHLIB. Tạo liên kết tượng trưng cho llvm-gcc-4.2 và llvm-g ++ - 4.2 theo cách tương tự, thay vì thay thế LLVM hoặc CLANG, là đủ để giải quyết lỗi.

6

Bạn có thể thoải mái xây dựng LLVM của riêng bạn sử dụng homebrew:

gói
brew install llvm 

Ngoài ra còn có phiên bản trong trường hợp bạn cần một phiên bản cụ thể:

+0

, tính năng này không còn hoạt động khi vòi đó hiện đang trống. '$ brew tap homebrew/versions' trả về" Cảnh báo: homebrew/phiên bản không còn được dùng nữa. Vòi này hiện đã trống khi tất cả các công thức của nó đã được di chuyển. " Có cách nào để làm điều này ngay bây giờ không? –

+1

Có nó vẫn hoạt động, tôi đã cập nhật câu trả lời. – jupp0r

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