Tôi đã thử
brew install llvm
nhưng sau đó tôi không thể tìm thấy bất kỳ clang++*
thực thi dưới /usr/local
.
Vì vậy, câu hỏi của tôi: Làm thế nào để có được clang ++ qua Homebrew?
Tôi đã thử
brew install llvm
nhưng sau đó tôi không thể tìm thấy bất kỳ clang++*
thực thi dưới /usr/local
.
Vì vậy, câu hỏi của tôi: Làm thế nào để có được clang ++ qua Homebrew?
Câu trả lời:
Kể từ năm 2018, kho lưu trữ Phiên bản Homebrew ('tap') đã hết dịch vụ .
Gói mặc định Homebrew llvm vẫn không bao gồm clang / clang ++, theo mặc định. Do đó, nó không phải là một phần của gói dựng sẵn ('đóng chai').
Người ta có thể xây dựng nó thông qua:
brew install --with-toolchain llvm
Và sau đó sử dụng nó thông qua:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Nhưng việc --with-toolchain
xây dựng cảm ứng này mất một thời gian rất dài và do đó không phù hợp trong môi trường tích hợp liên tục (CI).
Tuy nhiên, tiếng kêu đi kèm với XCode gần đây (có sẵn trong môi trường CI như Travis-CI, Phiên bản 9 là mặc định, 10 cũng có sẵn) không còn lỗi thời như trước đây (Apple sử dụng sơ đồ phiên bản giả tưởng đối với clang không khớp với số phiên bản clang ngược dòng nhưng cmake phát hiện, ví dụ như đối với AppleClang 9.1.0.9020039 phiên bản 4.0.1). Do đó, việc xây dựng phần mềm C ++ 11 / C ++ 14 là đủ với các phụ thuộc phổ biến như Boost (ví dụ: phiên bản 1.67).
Các llvm
gói trong Homebrew không bao gồm clang++
, theo mặc định. Khi cài đặt nó, bạn phải thêm --with-clang
vào dòng lệnh (ví dụ brew install --with-clang llvm
). Phần bổ sung --with-clang
mang lại một gói biên dịch đầy đủ vì chỉ có một gói prebuild ('đóng chai') llvm
(không có clang++
). Thêm vào đó: llvm
gói tương đối cũ - hiện tại nó đã có 3.6 - nơi 3.7 đã được phát hành 6 tháng trước.
Do đó, để có được một chai clang++
3.7, bạn phải cài đặt gói llvm từ Phiên bản Homebrew :
$ brew tap homebrew/versions
$ brew install llvm37
Sau đó, nó có sẵn dưới:
/usr/local/bin/clang++-3.7
Công thức cũng lưu ý:
To link to libc++, something like the following is required:
CXX="clang++-3.7 -stdlib=libc++"
CXXFLAGS="$CXXFLAGS -nostdinc++ -I/usr/local/opt/llvm37/lib/llvm-3.7/include/c++/v1"
LDFLAGS="$LDFLAGS -L/usr/local/opt/llvm37/lib/llvm-3.7/lib"
llvm
(3.9.1) trong homebrew-core
tap hiện nay bao gồm clang
, clang++
vv dưới/usr/local/opt/llvm/bin
--with-toolchain
bây giờ có một đối số mà một số người dùng có thể cần. Xem thêm thông tin ở đây, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
đối số đã bị xóa.
brew install --with-toolchain llvm
như @hangtoven đang gợi ý hay brew install llvm
không? Với --with-toolchain
tùy chọn, gói được biên dịch - rất tốn thời gian - so với việc chỉ cài đặt gói dựng sẵn (đóng chai / nhị phân).
Bạn phải cài đặt nó với --with-clang
tùy chọn:
$ brew install --with-clang llvm
==> Installing dependencies for llvm: cmake
==> Installing llvm dependency: cmake
==> Downloading https://homebrew.bintray.com/bottles/cmake-3.4.3.el_capitan.bottle.tar.gz
######################################################################## 100.0%
==> Pouring cmake-3.4.3.el_capitan.bottle.tar.gz
==> Caveats
Emacs Lisp files have been installed to:
/usr/local/share/emacs/site-lisp/cmake
==> Summary
🍺 /usr/local/Cellar/cmake/3.4.3: 1,980 files, 27.4M
==> Installing llvm
==> Downloading http://llvm.org/releases/3.6.2/llvm-3.6.2.src.tar.xz
######################################################################## 100.0%
==> Downloading http://llvm.org/releases/3.6.2/cfe-3.6.2.src.tar.xz
######################################################################## 100.0%
==> cmake -G Unix Makefiles /private/tmp/llvm20160211-42310-16fdrbw/llvm-3.6.2.src -DCMAKE_C_FLAGS_RELEASE=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEAS
==> make
==> make install
==> Caveats
LLVM executables are installed in /usr/local/opt/llvm/bin.
Extra tools are installed in /usr/local/opt/llvm/share/llvm.
This formula is keg-only, which means it was not symlinked into /usr/local.
OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/llvm/lib
CPPFLAGS: -I/usr/local/opt/llvm/include
If you need Python to find bindings for this keg-only formula, run:
echo /usr/local/opt/llvm/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/llvm.pth
==> Summary
🍺 /usr/local/Cellar/llvm/3.6.2: 1,350 files, 338.2M, built in 21 minutes 18 seconds
Sau đó, bạn sẽ tìm thấy clang++
trên / usr / local / opt / llvm / bin / clang ++ .
--with-clang
? Tôi đang hỏi bởi vì tôi dự định gọi nó trong một môi trường hội nhập liên tục ...
Các tùy chọn --with-clang và --with-toolchain không hoạt động nữa. Điều này làm việc cho tôi:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
Tôi biên dịch với
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
thư mục là cơ sở bao gồm dir, vì vậy tất cả quá trình xây dựng phần mềm đều thất bại. Clang được cung cấp bởi xcode không có fsanitize=leak
và ccc-analyzer
. Vì vậy, cả hai tiếng kêu trên mac os bị hỏng. Bạn phải xây dựng nó với tất cả các tính năng được kích hoạt từ nguồn. Nhưng việc biên dịch sẽ giết chết CI của bạn như travis. Vì vậy, bạn phải lưu trữ và duy trì CI riêng cho táo. Apple chỉ tốt cho sự phát triển đơn giản, bất cứ điều gì khác đòi hỏi sự đau đớn.
Bây giờ đã đủ để chạy:
brew install llvm
Các chai bây giờ bao gồm clang
mặc định.