私はもう試した
brew install llvm
しかし、その後、私はclang++*
実行可能ファイルを見つけることができません/usr/local
。
したがって、私の質問:Homebrew経由でclang ++を取得する方法は?
私はもう試した
brew install llvm
しかし、その後、私はclang++*
実行可能ファイルを見つけることができません/usr/local
。
したがって、私の質問:Homebrew経由でclang ++を取得する方法は?
回答:
2018年の時点で、Homebrew Versionsリポジトリ(「タップ」)はサービスを停止しています。
デフォルトの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(Travis-CIなどのCI環境で利用可能なclang、バージョン9がデフォルトで、10も利用可能)に付属するclangは、以前のようにもう時代遅れではありません(Appleはファンタジーバージョンスキームを使用しています)アップストリームのclangバージョン番号とは一致しないが、cmakeはAppleClang 9.1.0.9020039の場合はバージョン4.0.1などを検出するclangの場合。したがって、Boost(たとえば、バージョン1.67)などの一般的な依存関係を持つC ++ 11 / C ++ 14ソフトウェアをビルドするだけで十分です。
llvm
Homebrew のパッケージにはclang++
、デフォルトでは含まれていません。インストールするとき--with-clang
は、コマンドラインに追加する必要があります(例brew install --with-clang llvm
)。余分なもの--with-clang
は、llvm
使用可能なプリビルド(「ボトル入り」)パッケージが1つしかないため(パッケージなしclang++
)、完全なパッケージコンパイルを生成します。それに加えて、llvm
パッケージは比較的古い-現在llvm 3.6を持っています-3.7は6か月前にリリースされました。
したがって、ボトルclang++
3.7 を取得するには、Homebrewバージョンから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
--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
?継続的インテグレーション環境でそれを呼び出すつもりなので、私は尋ねています
--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
ベースインクルードディレクトリとしてフォルダーが含まれていないため、すべてのソフトウェアビルドが失敗します。xcodeが提供するClangにはfsanitize=leak
とはありませんccc-analyzer
。そのため、Mac OSの両方のクラングが壊れています。ソースからすべての機能を有効にしてビルドする必要があります。しかし、コンパイルはtravisのようにCIを殺します。そのため、アップル専用の個別のCIをホストおよび維持する必要があります。Appleは単純な開発にのみ適していますが、それ以外のものには苦痛が必要です。
実行するのに十分です:
brew install llvm
現在、ボトルにはclang
デフォルトで含まれています。