ฉันได้พยายาม
brew install llvm
แต่หลังจากนั้นฉันไม่สามารถค้นหาclang++*
แฟ้มที่ปฏิบัติการ/usr/local
ได้
ดังนั้นคำถามของฉัน: วิธีการได้รับเสียงดังกราว ++ ผ่าน Homebrew?
ฉันได้พยายาม
brew install llvm
แต่หลังจากนั้นฉันไม่สามารถค้นหาclang++*
แฟ้มที่ปฏิบัติการ/usr/local
ได้
ดังนั้นคำถามของฉัน: วิธีการได้รับเสียงดังกราว ++ ผ่าน Homebrew?
คำตอบ:
ตั้งแต่ปีพ. ศ. 2561 พื้นที่เก็บข้อมูลรุ่น Homebrew ('tap') ไม่สามารถใช้งานได้
แพคเกจ Homebrew llvm หุ้นยังคงไม่รวม clang / clang ++ โดยค่าเริ่มต้น ดังนั้นจึงไม่ได้เป็นส่วนหนึ่งของแพ็คเกจ (บรรจุขวด) ที่สร้างไว้ล่วงหน้า
เราสามารถสร้างมันผ่าน:
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 เช่น Travis-CI, เวอร์ชัน 9 เป็นค่าเริ่มต้น, 10 พร้อมใช้งานเช่นกัน) ไม่ได้ล้าสมัยอีกต่อไปเหมือนที่เคยเป็นมา (Apple ใช้รูปแบบแฟนตาซี สำหรับเสียงดังกราวที่ไม่ตรงกับหมายเลขรุ่นเสียงดังกังวานต้นน้ำ แต่ตรวจจับ cmake เช่นสำหรับ AppleClang 9.1.0.9020039 รุ่น 4.0.1) ดังนั้นจึงเพียงพอที่จะสร้างซอฟต์แวร์ C ++ 11 / C ++ 14 ที่มีการอ้างอิงทั่วไปเช่น Boost (เช่นรุ่น 1.67)
llvm
แพคเกจใน Homebrew ไม่รวมclang++
โดยค่าเริ่มต้น เมื่อติดตั้งคุณต้องเพิ่ม--with-clang
ไปยังบรรทัดคำสั่ง (เช่นbrew install --with-clang llvm
) --with-clang
ผลตอบแทนพิเศษรวบรวมแพคเกจเต็มเพราะมีเพียงหนึ่ง prebuild ('ขวด') llvm
แพคเกจที่มีอยู่ (ไม่clang++
) นอกจากนั้นllvm
แพคเกจค่อนข้างเก่า - ปัจจุบันมี llvm 3.6 - ที่ 3.7 วางจำหน่าย 6 เดือนที่ผ่านมา
ดังนั้นในการรับclang++
3.7 ขวดคุณต้องติดตั้งแพคเกจ llvm จากHomebrew เวอร์ชั่น :
$ 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 / local / opt / LLVM / bin / เสียงดังกราว ++
--with-clang
? ฉันถามเพราะผมตั้งใจจะโทรว่าในสภาพแวดล้อมที่บูรณาการอย่างต่อเนื่อง ...
ตัวเลือก - กับเสียงดังกราวและ - ด้วยเครื่องมือห่วงโซ่ไม่ทำงานอีกต่อไป สิ่งนี้ใช้ได้กับฉัน:
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
ดังนั้นเสียงดังกราวทั้งสองบน mac os จึงพัง คุณต้องสร้างมันด้วยคุณสมบัติทั้งหมดที่เปิดใช้งานจากแหล่งที่มา แต่การรวบรวมจะฆ่า CI ของคุณเหมือนเทรวิส ดังนั้นคุณต้องโฮสต์และดูแล CI แยกต่างหากสำหรับแอปเปิ้ลเท่านั้น แอปเปิ้ลดีสำหรับการพัฒนาที่เรียบง่าย แต่อย่างอื่นก็ต้องเจ็บปวด
ตอนนี้ก็เพียงพอแล้วที่จะเรียกใช้:
brew install llvm
ตอนนี้ขวดจะรวมclang
โดยค่าเริ่มต้น