I have been trying for 3 days to install clang 5.0 on an Ubuntu 16.04 machine. I have tried various guides, but nothing seems to work. When I try to simply grab the latest from SVN and build/install (as detailed here), trying to compile a simple program leads to:
> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
I then tried setting the -DGCC_INSTALL_PREFIX
flag for cmake
before building, but that leads to the even better error:
> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>
The steps I've been following are (from the above guide):
> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \
-G "Unix Makefiles" path/to/llvm
...
> make
...
> make check-clang
...
> make install-clang
...
Could someone treat me like an idiot and explain step-by-step how to install clang 5.0? Or point me to a guide that even basic fools like me can follow? If you also can explain how to build and install libc++ for C++17, I would be eternally grateful.
Update:
It seems I'm not installing clang correctly, since this is the the output of a verbose compilation with clang:
...
#include <...> search starts here:
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
and this is the output for g++:
#include <...> search starts here:
/usr/include/c++/5
/usr/include/x86_64-linux-gnu/c++/5
/usr/include/c++/5/backward
/usr/lib/gcc/x86_64-linux-gnu/5/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
/usr/include/x86_64-linux-gnu
/usr/include
...
Best Answer
Install clang-5 from llvm.org repositores
First, we should add the llvm.org repositories to our sources lists, the line that we should add is:
Open nano and add the above line to this file:
Add the repository key, it will make
apt
able to verify the downloaded packages.After that, update your lists:
Then install clang-5:
It should work.
If you want to get a list of all available packages from this newly added repository:
It will give you a list like:
You can then install whatever of them you want.
It may help your compile problem
The header file that has been mentioned does not exist in your error:
stdarg.h
is a part oflibstdc++-5-dev
package.I've got this package on my machine, so if I run:
I will get:
So it seems that installing the
build-essential
package should solve this error of yours, cause I'm not sure what you've done.