安装clang 5.0并使用C ++ 17
我已经尝试了3天在Ubuntu 16.04机器上安装clang 5.0。 我尝试过各种 指南 ,但似乎没什么用。 当我尝试简单地从SVN获取最新版本并构建/安装(如此处详述)时,尝试编译一个简单的程序会导致:
> clang++ basic.cpp /usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found # include
然后我尝试在构建之前为cmake
设置-DGCC_INSTALL_PREFIX
标志,但这会导致更好的错误:
> clang++ basic.cpp fatal error: 'iostream' file not found #include
我一直遵循的步骤(来自上面的指南):
> cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/ \ -G "Unix Makefiles" path/to/llvm ... > make ... > make check-clang ... > make install-clang ...
有人可以像对待白痴一样对待我并逐步解释如何安装clang 5.0吗? 或者指点我甚至像我这样的基本傻瓜都可以效仿? 如果您还可以解释如何构建和安装libc ++ for C ++ 17,我将永远感激不尽。
更新 :似乎我没有正确安装clang,因为这是使用clang进行详细编译的输出:
... #include search starts here: /usr/local/include /usr/include/x86_64-linux-gnu /usr/include
这是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 ...
从llvm.org repositores安装clang-5
首先,我们应该将llvm.org存储库添加到我们的源列表中,我们应该添加的行是:
deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main
打开nano并将以上行添加到此文件:
sudo nano /etc/apt/sources.list.d/llvm.list
添加存储库密钥,它将使apt
能够validation下载的软件包。
wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
之后,更新您的列表:
sudo apt-get update
然后安装clang-5:
sudo apt-get install clang-5.0 lldb-5.0 lld-5.0
它应该工作。
如果要从此新添加的存储库中获取所有可用包的列表:
grep -i package: /var/lib/apt/lists/apt.llvm* | cut -f3 -d: | sort | uniq
它将为您提供如下列表:
clang-5.0 clang-5.0-doc clang-5.0-examples libclang-common-5.0-dev ...
然后,您可以安装所需的任何内容。
它可能有助于编译问题
您提到的头文件在您的错误中不存在: stdarg.h
是libstdc++-5-dev
软件包的一部分。
我的机器上有这个包,所以如果我运行:
aptitude why libstdc++-5-dev
我会得到:
i build-essential Depends g++ (>= 4:5.2) i A g++ Depends g++-5 (>= 5.3.1-3~) i A g++-5 Depends libstdc++-5-dev (= 5.4.0-6ubuntu1~16.04.4)
所以似乎安装build-essential
包应该可以解决你的这个错误,因为我不确定你做了什么。