Ubuntu – How to install CLang using precompiled binaries

cclanginstallation

How do I install CLang on Ubuntu, using precompiled binaries of CLang that I downloaded?

Here's how I downloaded CLang: "LLVM Download Page" -> "Download LLVM 3.2" -> "Clang Binaries for Ubuntu-12.04/x86_64" ( http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz .)

Then, I expanded the archive into a folder on my Ubuntu 12.04 LTS 64-bit machine. The contents of the expanded folder look like this:

$ ls clang+llvm-3.2-x86_64-linux-ubuntu-12.04
bin  docs  include  lib  share

Question: What do I do next? Do I have to copy these into some folders myself, and if so, which ones exactly? Most instructions I found online are for building CLang from source, which doesn't apply here.

I am a newbie to most of these tools. I created a basic hello-world C++ program, and was able to compile and run it, using GCC and autotools. Now, I want to compile the same program with CLang.

Thanks

Also asked on StackOverflow: How to install CLang using precompiled binaries?: https://stackoverflow.com/questions/17045954/how-to-install-clang-using-precompiled-binaries .

Possible duplicate: How do I install LLVM/Clang 3.0?
(However, that answer does not have the specific steps needed.)

Best Answer

Perhaps the easiest way to install this archive is to use the following 2 commands:

wget http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz
sudo tar -C /usr/local -xvf clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz --strip 1

This works nicely on my 12.04 VM and gives the following:

andrew@ithaca:~$ clang --version
clang version 3.2 (tags/RELEASE_32/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
andrew@ithaca:~$ 

This installation takes away the ability to easily remove the package with standard Ubuntu package management tools but the following single command will remove all of the installed files:

sudo rm -v /usr/local/bin/{clang*,llc,lli,llvm*,macho-dump,opt,bugpoint,c-index-test} && \
sudo rm -rfv /usr/local/docs/llvm && \
sudo rm -rfv /usr/local/include/{clang,clang-c,llvm,llvm-c} && \
sudo rm -v /usr/local/share/man/man1/clang.1 && \
sudo rm -rfv /usr/local/lib/clang && \
sudo rm -v /usr/local/lib/{BugpointPasses.so,libclang*,libLLVM*,libLTO*,libprofile_rt*,LLVM*}

Tested on my own system and it removes the files cleanly...

Related Question