próbowałem
brew install llvm
ale po tym nie mogę znaleźć żadnego clang++*
pliku wykonywalnego /usr/local
.
Zatem moje pytanie: jak zdobyć clang ++ przez Homebrew?
źródło
próbowałem
brew install llvm
ale po tym nie mogę znaleźć żadnego clang++*
pliku wykonywalnego /usr/local
.
Zatem moje pytanie: jak zdobyć clang ++ przez Homebrew?
Od 2018 r. Repozytorium wersji Homebrew („dotknij”) nie działa .
Standardowy pakiet Homebrew llvm nadal nie zawiera clang / clang ++. W związku z tym nie jest częścią wstępnie zbudowanego („butelkowanego”) pakietu.
Można go zbudować poprzez:
brew install --with-toolchain llvm
A następnie użyj go np .:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
Ale ta --with-toolchain
indukowana kompilacja zajmuje bardzo dużo czasu i dlatego nie nadaje się w środowisku ciągłej integracji (CI).
Jednak clang, który jest dostarczany z najnowszym XCode (który jest dostępny w środowiskach CI, takich jak Travis-CI, wersja 9 jest domyślna, 10 również dostępne) nie jest już tak przestarzały, jak kiedyś (Apple stosuje schemat wersji fantasy dla clang, który nie pasuje do wcześniejszych numerów wersji clang, ale cmake wykrywa np. dla AppleClang 9.1.0.9020039 wersja 4.0.1). Wystarczy zatem zbudować oprogramowanie C ++ 11 / C ++ 14 z typowymi zależnościami, takimi jak Boost (np. Wersja 1.67).
llvm
Pakiet w Homebrew nie zawiera clang++
domyślnie. Podczas instalacji musisz dodać --with-clang
do wiersza poleceń (np brew install --with-clang llvm
.). Dodatek --with-clang
daje kompilację pełnego pakietu, ponieważ dostępny jest tylko jeden pakiet prebuild („butelkowany”) llvm
(bez clang++
). Ponadto: llvm
pakiet jest stosunkowo stary - obecnie ma lvvm 3.6 - gdzie wersja 3.7 została wydana 6 miesięcy temu.
Tak więc, aby uzyskać butelkowaną wersję clang++
3.7, musisz zainstalować pakiet llvm z wersji Homebrew :
$ brew tap homebrew/versions
$ brew install llvm37
Jest on następnie dostępny pod:
/usr/local/bin/clang++-3.7
Formuła zauważa również:
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) whomebrew-core
kranu zawiera terazclang
,clang++
itp pod/usr/local/opt/llvm/bin
--with-toolchain
argument, którego niektórzy użytkownicy mogą potrzebować. Więcej informacji tutaj, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx--with-clang
argument został usunięty.brew install --with-toolchain llvm
ponieważ @ hangtwenty sugeruje lub jestbrew install llvm
wystarczające? Dzięki tej--with-toolchain
opcji pakiet jest kompilowany - co jest bardzo czasochłonne - w porównaniu do zwykłej instalacji pakietu (butelkowanego / binarnego).Musisz go zainstalować z
--with-clang
opcją:Następnie znajdziesz
clang++
na / usr / local / opt / llvm / bin / clang ++ .źródło
--with-clang
? Pytam, ponieważ zamierzam to nazwać w środowisku ciągłej integracji ...Opcje --with-clang i --with-toolchain już nie działają. To działało dla mnie:
Kompilowałem się z
źródło
/usr/local/include
folderów, ponieważ baza zawiera katalog, więc kompilacja oprogramowania kończy się niepowodzeniem. Clang dostarczony przez xcode nie mafsanitize=leak
iccc-analyzer
. Więc oba kliknięcia w Mac OS są zepsute. Musisz go zbudować z włączonymi wszystkimi funkcjami ze źródła. Ale kompilacja zabije Twój CI jak Travis. Więc musisz hostować i utrzymywać osobne CI tylko dla Apple. Jabłko nadaje się tylko do prostego rozwoju, wszystko inne wymaga bólu.Teraz wystarczy uruchomić:
Butelka zawiera teraz
clang
domyślnie.źródło