Saya sudah mencoba
brew install llvm
tapi setelah itu saya tidak dapat menemukan clang++*
executable di bawah /usr/local
.
Jadi pertanyaan saya: Bagaimana cara mendapatkan dentingan ++ melalui Homebrew?
Saya sudah mencoba
brew install llvm
tapi setelah itu saya tidak dapat menemukan clang++*
executable di bawah /usr/local
.
Jadi pertanyaan saya: Bagaimana cara mendapatkan dentingan ++ melalui Homebrew?
Jawaban:
Pada 2018, repositori Versi Homebrew ('ketuk') tidak berfungsi .
Paket stock Homebrew llvm masih belum menyertakan clang / clang ++, secara default. Dengan demikian, ini bukan bagian dari paket prebuilt ('botol').
Seseorang dapat membangunnya melalui:
brew install --with-toolchain llvm
Dan kemudian menggunakannya via mis:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Tetapi --with-toolchain
pembangunan yang diinduksi ini membutuhkan waktu yang sangat lama dan karenanya tidak cocok dalam lingkungan integrasi berkelanjutan (CI).
Namun, dentang yang datang dengan XCode baru-baru ini (yang tersedia di lingkungan CI seperti Travis-CI, Versi 9 adalah default, 10 tersedia juga) tidak ketinggalan jaman lagi seperti dulu (Apple menggunakan skema versi fantasi untuk dentang yang tidak cocok dengan nomor versi dentang hulu tetapi cmake mendeteksi misalnya untuk AppleClang 9.1.0.9020039 versi 4.0.1). Dengan demikian, cukup untuk membangun perangkat lunak C ++ 11 / C ++ 14 dengan dependensi umum seperti Boost (misalnya versi 1.67).
The llvm
paket di Homebrew tidak termasuk clang++
, secara default. Saat menginstalnya, Anda harus menambahkan --with-clang
ke baris perintah (misalnya brew install --with-clang llvm
). Hasil tambahan --with-clang
kompilasi paket lengkap karena hanya ada satu paket prebuild ('botol') llvm
yang tersedia (tanpa clang++
). Selain itu: llvm
paketnya relatif lama - saat ini memiliki llvm 3.6 - di mana 3.7 dirilis 6 bulan lalu.
Jadi, untuk mendapatkan botol clang++
3.7, Anda harus menginstal paket llvm dari Homebrew Version :
$ brew tap homebrew/versions
$ brew install llvm37
Ini kemudian tersedia di bawah:
/usr/local/bin/clang++-3.7
Rumusnya juga mencatat:
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) di homebrew-core
tap sekarang termasuk clang
, clang++
, dll di bawah/usr/local/opt/llvm/bin
--with-toolchain
argumen yang dibutuhkan beberapa pengguna. Info lebih lanjut di sini, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
argumen telah dihapus.
brew install --with-toolchain llvm
karena @hangtwenty menyarankan atau brew install llvm
cukup? Dengan --with-toolchain
opsi paket dikompilasi - yang sangat memakan waktu - dibandingkan dengan hanya menginstal paket prebuilt (botol / biner).
Anda harus menginstalnya dengan --with-clang
opsi:
$ 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
Kemudian, Anda akan menemukan clang++
di / usr / local / opt / llvm / bin / clang ++ .
--with-clang
? Saya bertanya karena saya bermaksud menyebutnya dalam lingkungan integrasi berkelanjutan ...
Opsi --with-clang dan --with-toolchain tidak berfungsi lagi. Ini bekerja untuk saya:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
Saya dikompilasi dengan
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
folder sebagai basis termasuk dir, sehingga semua perangkat lunak gagal. Dentang yang disediakan oleh xcode tidak memiliki fsanitize=leak
dan ccc-analyzer
. Jadi kedua dentang di mac os rusak. Anda harus membangunnya dengan semua fitur yang diaktifkan dari sumber. Tetapi kompilasi akan membunuh CI Anda seperti travis. Jadi, Anda harus meng-host dan mempertahankan CI terpisah hanya untuk apel. Apple hanya baik untuk pengembangan sederhana, apa pun membutuhkan rasa sakit.
Sekarang sudah cukup untuk dijalankan:
brew install llvm
Botol sekarang termasuk clang
secara default.