denedim
brew install llvm
ama ondan sonra clang++*
altında çalıştırılabilir bir dosya bulamıyorum /usr/local
.
Böylece benim sorum: Homebrew üzerinden clang ++ almak nasıl?
denedim
brew install llvm
ama ondan sonra clang++*
altında çalıştırılabilir bir dosya bulamıyorum /usr/local
.
Böylece benim sorum: Homebrew üzerinden clang ++ almak nasıl?
Yanıtlar:
2018 itibariyle, Homebrew Versions deposu ('musluk') hizmet dışıdır .
Homebrew llvm paketi hala varsayılan olarak clang / clang ++ içermemektedir. Bu nedenle, önceden oluşturulmuş ('şişelenmiş') paketin bir parçası değildir.
Biri onu şu şekilde inşa edebilir:
brew install --with-toolchain llvm
Ve sonra örneğin aracılığıyla kullanın:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Ancak bu --with-toolchain
uyarılmış yapı çok uzun zaman alır ve bu nedenle sürekli bir entegrasyon (CI) ortamında uygun değildir.
Bununla birlikte, en son XCode ile gelen clang (Travis-CI gibi CI ortamlarında mevcuttur, Sürüm 9, varsayılan 10'dur), eskisi gibi eskimiş bir durum değildir (Apple, bir fantezi versiyonunu kullanır) upstream clang sürüm numaralarına uymayan clang için, ancak cmake, örneğin AppleClang 9.1.0.9020039 sürüm 4.0.1'i algılar). Bu nedenle, C ++ 11 / C ++ 14 yazılımının Boost gibi ortak bağımlılıklara sahip olması yeterlidir (örn. Sürüm 1.67).
llvm
Homebrew içindeki paket clang++
varsayılan olarak içermez . Takarken --with-clang
, komut satırına eklemeniz gerekir (örn. brew install --with-clang llvm
). Ekstra --with-clang
, tam bir paket derlemesi sağlar, çünkü sadece bir önceden oluşturulmuş ('şişelenmiş') llvm
paket vardır (olmadan clang++
). Buna ek olarak: llvm
paket nispeten eski - şu anda llvm 3.6 - 3.7, 6 ay önce piyasaya sürüldü.
Bu nedenle, şişelenmiş bir clang++
3.7 elde etmek için llvm paketini Homebrew Versions'dan yüklemelisiniz :
$ brew tap homebrew/versions
$ brew install llvm37
Daha sonra altında kullanılabilir:
/usr/local/bin/clang++-3.7
Formül ayrıca şunları da not eder:
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
içinde (3.9.1) homebrew-core
musluk şimdi içerir clang
, clang++
altında vb/usr/local/opt/llvm/bin
--with-toolchain
Bazı kullanıcıların ihtiyaç duyabileceği bir tartışma var . Burada daha fazla bilgi, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
argüman kaldırıldı.
brew install --with-toolchain llvm
@hangtwenty'ın önerdiği veya brew install llvm
yeterli olduğu şekilde yürütmek zorunda mıyım ? Bu --with-toolchain
seçenekle, paket önceden derlenmiş (şişelenmiş / ikili) bir paket takmaya kıyasla - çok zaman alıcı - derlenir.
--with-clang
Seçeneği ile yüklemek zorundasınız :
$ 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
Ardından, bulacaksınız clang++
üzerinde / usr / local / opt / LLVM / bin / clang ++ .
--with-clang
? Soruyorum çünkü bunu sürekli bir entegrasyon ortamında aramak niyetindeyim ...
--With-clang ve --with-toolchain seçenekleri artık çalışmıyor. Bu benim için çalıştı:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
İle derledim
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
tüm yazılım oluşturma işlemi başarısız olur, böylece baz dir dahil olarak klasör. Xcode tarafından sağlanan Clang sahip değildir fsanitize=leak
ve ccc-analyzer
. Bu yüzden mac os üzerindeki her iki clanc koptu. Kaynaktan etkin olan tüm özellikler ile oluşturmalısınız. Fakat derleme CI'nizi travis benzeri öldürür. Bu nedenle, yalnızca elma için ayrı CI'yi barındırmanız ve korumanız gerekir. Elma sadece basit bir gelişme için iyidir, başka bir şey acı ister.
Şimdi çalıştırmak için yeterli:
brew install llvm
Şişe şimdi clang
varsayılan olarak içerir .