Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install Clang from the binary distribution?

Clang has a binary distro, of sorts, but there isn't any README file or anything to tell you what's in the tarball or what to do with it.

It appears that I need to separately download and install libc++. I may need to copy only the clang binary and maybe a few others, but not all the llvm-* stuff. This is just judging by the lack of any C++ headers in the binary distro (although some environment-specific headers are included), and the lack of llvm-as and such on my existing LLVM 3.2 installation from Xcode.

I just want to run the compiler, not develop with libclang or assemble LLVM assembly files. Is there an instruction page somewhere?

like image 353
Potatoswatter Avatar asked Jul 29 '13 10:07

Potatoswatter


People also ask

How do I install the latest clang?

Enter the command clang --version to see if the Clang compilers are already installed. If you want to install or update the Clang compilers, enter the command command xcode-select --install The following pop-up windout should appear on your screen (in this example I have placed it withing the Terminal window).

Is clang binary compatible with GCC?

In general, Clang is highly compatible with the GCC inline assembly extensions, allowing the same set of constraints, modifiers and operands as GCC inline assembly.

How do I download clang format?

You can install clang-format and git-clang-format via npm install -g clang-format . To automatically format a file according to Electron C++ code style, run clang-format -i path/to/electron/file.cc . It should work on macOS/Linux/Windows.


1 Answers

The LLVM project doesn't actually expect many people to use the binary distribution they put out. LLVM does releases for the periodic validation, but it's expected that most users will get LLVM through their OS distro or will build the version they want from source.

See this email thread where clang developers are discussing how the binaries distrbution is used.

That said, you can use their distribution if you want. What to install depends on what you want to do:

  • Use clang as a static compiler.
  • Build clang based tools.
  • Use LLVM as a backend for your custom language compiler.

I may need to copy only the clang binary and maybe a few others, but not all the llvm-* stuff.

If all you want to do is compile C/C++/Obj-C, then I believe all you need is the clang binary (and the 'clang++' symbolic link), the 'built-in' headers, and the runtime libraries. You'll find those headers and libs in /lib/clang/<version>/. (The clang compiler typically finds its built-in parts by their location relative to the binary.)

If you want to use LLVM as a backend, you'll need either the LLVM headers and libraries to build and link against, or you'll need some of the ll* binaries to process output of your frontend.

If you want to build clang based tools you'll need the clang headers and libraries to build and link against, either the stable C API or the unstable C++ API.

Note that the libraries are built with RTTI and exceptions disabled. This changes the ABI and so you can't link these with code built with RTTI or exceptions enabled.

It appears that I need to separately download and install libc++.

Correct, libc++ is not included as part of LLVM's distribution. Many of the nominal LLVM subprojects aren't included. LLDB is another example.

Nor does LLVM include a standard C library or the basic Objective-C frameworks.

like image 57
bames53 Avatar answered Sep 28 '22 07:09

bames53