मैंने कोशिश की
brew install llvm
लेकिन उसके बाद मुझे कोई clang++*
निष्पादन योग्य नहीं मिल सकता है /usr/local
।
इस प्रकार मेरा सवाल है: Homebrew के माध्यम से क्लेंग ++ कैसे प्राप्त करें?
मैंने कोशिश की
brew install llvm
लेकिन उसके बाद मुझे कोई clang++*
निष्पादन योग्य नहीं मिल सकता है /usr/local
।
इस प्रकार मेरा सवाल है: Homebrew के माध्यम से क्लेंग ++ कैसे प्राप्त करें?
जवाबों:
2018 तक, होमब्रे वर्जन रिपॉजिटरी ('टैप') सेवा से बाहर है ।
स्टॉक Homebrew llvm पैकेज में अभी भी डिफ़ॉल्ट रूप से क्लैंग / क्लैंग ++ शामिल नहीं है। इस प्रकार, यह प्रीबिल्ट ('बोतलबंद') पैकेज का हिस्सा नहीं है।
कोई इसे बना सकता है:
brew install --with-toolchain llvm
और फिर उदाहरण के लिए इसका उपयोग करें:
$ PATH="/usr/local/opt/llvm/bin:$PATH" \
LDFLAGS='-L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib' \
cmake ...
लेकिन यह --with-toolchain
प्रेरित निर्माण बहुत लंबा समय लेता है और इस प्रकार एक सतत एकीकरण (CI) वातावरण में अनुपयुक्त है।
हालाँकि, हाल ही में XCode (जो ट्रैविस-सीआई जैसे CI वातावरण में उपलब्ध है, संस्करण 9 डिफ़ॉल्ट रूप से उपलब्ध है, 10 उपलब्ध है, भी) वह पुराना नहीं है जैसा कि पहले हुआ करता था (Apple एक फंतासी संस्करण योजना का उपयोग करता है क्लैंग के लिए जो अपस्ट्रीम क्लैंग वर्जन नंबरों से मेल नहीं खाता है, लेकिन AppleClang 9.1.0.9020039 संस्करण 4.0 के लिए उदाहरण के लिए cmake का पता लगाता है।)। इस प्रकार, बूस्ट (जैसे संस्करण 1.67) जैसी सामान्य निर्भरता के साथ C ++ 11 / C ++ 14 सॉफ़्टवेयर का निर्माण करना पर्याप्त है।
llvm
Homebrew में पैकेज में शामिल नहीं है clang++
डिफ़ॉल्ट रूप से,। इसे स्थापित करते समय, आपको --with-clang
कमांड लाइन (जैसे brew install --with-clang llvm
) में जोड़ना होगा । अतिरिक्त --with-clang
पैदावार एक पूर्ण पैकेज संकलित करता है क्योंकि वहाँ केवल एक ही ('बोतलबंद') llvm
पैकेज उपलब्ध है (बिना clang++
)। इसके अलावा: llvm
पैकेज अपेक्षाकृत पुराना है - वर्तमान में इसका एलएलवीएम 3.6 है - जहां 3.7 को 6 महीने पहले जारी किया गया था।
इस प्रकार, बोतलबंद clang++
3.7 पाने के लिए आपको होमब्रे संस्करणों से llvm पैकेज स्थापित करना होगा :
$ brew tap homebrew/versions
$ brew install llvm37
यह इसके बाद उपलब्ध है:
/usr/local/bin/clang++-3.7
सूत्र भी नोट करता है:
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) में homebrew-core
नल अब भी शामिल है clang
, clang++
आदि के तहत/usr/local/opt/llvm/bin
--with-toolchain
अब एक तर्क है कि कुछ उपयोगकर्ताओं की आवश्यकता हो सकती है। अधिक जानकारी यहाँ, embeddedartistry.com/blog/2017/2/20/installing-clangllvm-on-osx
--with-clang
तर्क हटा दिया गया है।
brew install --with-toolchain llvm
क्योंकि @hangtwenty सुझाव दे रहा है या brew install llvm
पर्याप्त है? साथ --with-toolchain
जो बहुत समय लेने वाली है - - बस एक पहले से बनाए गए (बोतलबंद / बाइनरी) पैकेज को स्थापित करने की तुलना में विकल्प पैकेज संकलित किया गया है।
आपको इसे --with-clang
विकल्प के साथ स्थापित करना होगा :
$ 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
उसके बाद, आप मिल जाएगा clang++
पर / usr / स्थानीय / opt / LLVM / bin / बजना ++ ।
--with-clang
? मैं पूछ रहा हूं क्योंकि मैं एक निरंतर एकीकरण वातावरण में कॉल करने का इरादा रखता हूं ...
--With-clang और --with-toolchain विकल्प अब काम नहीं करते हैं। यह मेरे लिए काम किया:
brew install llvm
cd /Library/Developer/CommandLineTools/Packages/
open .
run the installer
मैंने संकलन किया
CC=/usr/local/cellar/llvm/7.0.1/bin/clang CCX=/usr/local/cellar/llvm/7.0.1/bin/clang++ make
/usr/local/include
फ़ोल्डर शामिल नहीं है क्योंकि आधार में dir शामिल है, इसलिए सभी सॉफ़्टवेयर बिल्ड विफल हो जाते हैं। Xcode द्वारा प्रदान किए गए क्लैंग में नहीं है fsanitize=leak
और ccc-analyzer
। तो मैक ओएस पर दोनों clangs टूट गया है। आपको इसे स्रोत से सक्षम सभी सुविधाओं के साथ बनाना होगा। लेकिन संकलन आपके सीआई को ट्रैविस की तरह मार देगा। इसलिए आपको केवल सेब के लिए अलग सीआई की मेजबानी और रखरखाव करना होगा। सेब केवल सरल विकास के लिए अच्छा है, और कुछ भी दर्द की आवश्यकता है।
अब यह चलाने के लिए पर्याप्त है:
brew install llvm
बोतल में अब clang
डिफ़ॉल्ट रूप से शामिल है।