web-dev-qa-db-ja.com

clang 5.0のインストールとC ++ 17の使用

Ubuntu 16.04マシンに3日間clang 5.0をインストールしようとしています。 さまざまなガイド を試しましたが、何も機能しないようです。 SVNから最新バージョンを取得してビルド/インストールするだけで(詳細は here )、単純なプログラムをコンパイルしようとすると、次のようになります。

> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>

次に、ビルドする前にcmake-DGCC_INSTALL_PREFIXフラグを設定しようとしましたが、さらに良いエラーにつながります。

> clang++ basic.cpp
fatal error: 'iostream' file not found
#include <iostream>

私が従った手順は(上記のガイドから)です:

> 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のビルド方法とインストール方法についても説明していただければ、永遠に感謝します。

Update: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
...
17
Steve D

Llvm.orgリポジトリから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がダウンロードされたパッケージを検証できるようになります。

 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.hlibstdc++-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パッケージをインストールすることでthisのエラーが解決するようです。あなたがしたこと。

32
Ravexina