方式1 bin
http://releases.llvm.org/download.html#6.0.1
$ wget -c http://releases.llvm.org/6.0.1/clang+llvm-6.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz
$ tar xJvf clang+llvm-6.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz
$ pwd
$ vim ~/.bashrc
export PATH=$PATH:...clang+llvm-6.0.1-x86_64-linux-gnu-ubuntu-16.04/bin
$ source ~/.bashrc
$ clang
方式2 apt
$ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
$ sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main"
$ sudo apt-get update
$ sudo apt-get install -y clang-6.0
参考:2
https://www.linuxhelp.com/how-to-install-llvm-6-on-ubuntu-17-04
llvm源:http://apt.llvm.org/
找到 Ubuntu
Xenial (16.04) - Last update : Thu, 30 Aug 2018 00:57:23 UTC / Revision:
# 6.0
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo vi /etc/apt/sources.list
...
# 6.0
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main
$ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
--2018-08-29 23:23:15-- https://apt.llvm.org/llvm-snapshot.gpg.key
Resolving apt.llvm.org (apt.llvm.org)... 151.101.198.49
Connecting to apt.llvm.org (apt.llvm.org)|151.101.198.49|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3145 (3.1K) [application/octet-stream]
Saving to: ‘STDOUT’
- 100%[==================================================================================================================================================================================>] 3.07K --.-KB/s in 0s
2018-08-29 23:23:15 (65.6 MB/s) - written to stdout [3145/3145]
OK
$ sudo apt update
$ sudo apt install clang-6.0 lldb-6.0 lld-6.0
$ clang-6.0 --version
clang version 6.0.1-svn334776-1~exp1~20180826122732.96 (branches/release_60)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
测试
$ cd /tmp
$ cat hello.c
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
$ clang-6.0 hello.c -o hello
$ ./hello
Hello World
$ update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 1000
$ update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 1000
$ update-alternatives --config clang
$ update-alternatives --config clang++
$ clang
clang: error: no input files