回答:
そこにありますが、まだclang-3.5と呼ばれています。
あなたはそれをclang-3.5
(またはclang++-3.5
)として実行するか、私と同じようにシンボリックリンクを設定することができます(通常のclangのインストールは機能しませんでした):
sudo ln -s /usr/bin/clang-3.5 /usr/bin/clang
sudo ln -s /usr/bin/clang++-3.5 /usr/bin/clang++
perhapsい回避策、おそらく。しかし、少なくとも今のところは動作します:)
あなたのデフォルトとして打ち鳴らすを使用するための適切な方法cc
とc++
使用することですupdate-alternatives
:
同じまたは類似の機能を実行する複数のプログラムを、単一のシステムに同時にインストールすることができます。たとえば、多くのシステムには複数のテキストエディターが同時にインストールされています。これにより、システムのユーザーに選択肢が与えられ、必要に応じてそれぞれが異なるエディターを使用できるようになりますが、ユーザーが特定の設定を指定していない場合、プログラムが適切なエディターを選択して起動することは困難です。
したがって、最初に追加する必要がありますclang-3.5
またはのclang++-3.5
代わりに、例えばgcc
、およびg++
:
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-3.5 100
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-3.5 100
いつでも切り替える必要がある場合、gcc
またはオプションg++
を使用できる--config
場合:
sudo update-alternatives --config c++
cc
/ c++
2つのパスの間ですか?100
最後にそれは何ですか?優先度?
update-alternatives
ドキュメントを。私がここで要約するものよりも良い説明があると思います。
Yan Fotoの答えに追加します(そして、あなたの目的が使用可能にするclang
が、必ずしもそれを使用する必要がない場合cc
)、実際にプログラムのセット全体を一度に追加することができます
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.8 380 \
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-3.8 \
--slave /usr/bin/clang-check clang-check /usr/bin/clang-check-3.8 \
--slave /usr/bin/clang-query clang-query /usr/bin/clang-query-3.8 \
--slave /usr/bin/clang-rename clang-rename /usr/bin/clang-rename-3.8
(各clangバージョンに付属するバイナリのセットは異なる場合があることに注意してください。たとえば3.6にはありますがclang-tblgen
、3.8にはありません。)
インストールするclangのバージョンごとにこれを繰り返すと、1つのupdate-alternatives
コマンドを使用してそれらを切り替えることができます。
(一方、明らかに、これらのリンクをUbuntuパッケージに含めるかどうかについては、まだ議論が続いています:https : //bugs.launchpad.net/ubuntu/+source/llvm-3.1/+bug/991493)
ホームディレクトリに.bashrcファイルを作成します。このコード行を入力します。
エイリアスclang ++ = "clang ++-3.5"
ターミナルを閉じます。もう一度開きます。その後、プログラムを再度コンパイルしてください。
コマンド名 "clang ++-3.5"でバージョンを指定しない限り、clangが機能しないことを私が知ることができます。そのため、.bashrcファイルで名前をエイリアスしました。したがって、「clang ++」と入力するだけです。
ところで、clang 3.5をダウンロードしたので、以前のアドバイスをバージョンに合わせて調整してください。
これにより、clang- 3.8(Ubuntu 16.04と同様)がインストールされている場合、clang- 4.0の update-alternativesが設定されます。
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-4.0 100
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-4.0 100
sudo update-alternatives --install /usr/bin/clang-apply-replacements clang-apply-replacements /usr/bin/clang-apply-replacements-4.0 100
sudo update-alternatives --install /usr/bin/clang-check clang-check /usr/bin/clang-check-4.0 100
sudo update-alternatives --install /usr/bin/clang-query clang-query /usr/bin/clang-query-4.0 100
sudo update-alternatives --install /usr/bin/clang-tidy clang-tidy /usr/bin/clang-tidy-4.0 100
sudo update-alternatives --install /usr/bin/scan-build scan-build /usr/bin/scan-build-4.0 100
sudo update-alternatives --install /usr/bin/scan-view scan-view /usr/bin/scan-view-4.0 100
シンボリックリンクに関するJohann Wendinの回答に追加。でルートシェル一度にすべての様々な打ち鳴らすツールをリンクすることができます。
例えば
find /usr/bin/ -name clang* | sed -E 's/^(\/usr\/bin\/.*)(\-[0-9]*)$/ln -s -v \1\2 \1/' | xargs -d '\n' -n 1 bash -c
その後、以下について繰り返します。
llc-*
lld-*
lldb-*
llvm-*
次に、小さな選択だけでなく、すべてをリンクする必要があります。(たぶん私はまだ何かを忘れていました)。
これにより、/ usr / binのパターンに従ってすべてのファイルが検索され、末尾の数字(-8または-9または-10)が削除され、それぞれにシンボリックリンクが作成されます。
ln -s /usr/bin/llc-6.0 /usr/bin/llc