web-dev-qa-db-ja.com

プリコンパイルされたバイナリを使用してCLangをインストールするにはどうすればよいですか?

ダウンロードしたCLangのプリコンパイル済みバイナリを使用して、UbuntuにCLangをインストールするにはどうすればよいですか?

CLangをダウンロードした方法は次のとおりです。「LLVMダウンロードページ」->「LLVM3.2をダウンロード」->「Ubuntu用Clangバイナリ-12.04/x86_64」( http://llvm.org/releases/3.2/clang+llvm -3.2-x86_64-linux-ubuntu-12.04.tar.gz 。)

次に、アーカイブをUbuntu 12.04 LTS64ビットマシン上のフォルダーに展開しました。展開されたフォルダーの内容は次のようになります。

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

質問:次に何をしますか?これらを自分でいくつかのフォルダにコピーする必要がありますか?もしそうなら、どれを正確にコピーしますか?私がオンラインで見つけたほとんどの手順は、ソースからCLangを構築するためのものであり、ここでは適用されません。

私はこれらのツールのほとんどの初心者です。基本的なhello-worldC++プログラムを作成し、GCCとautotoolsを使用してコンパイルして実行することができました。今、私はCLangで同じプログラムをコンパイルしたいと思います。

18
user1909987

https://askubuntu.com/questions/89615/how-do-i-install-llvm-clang-3- で説明したのと同じ手順に従うことができます

GNU tar:

wget <clang-binaries-tarball-url> #  or `curl -O <url>`
tar xf clang*
cd clang*
Sudo cp -R * /usr/local/

tarがGNUおよび

  • 取得するアーカイブは.tar.gzであり、tar -xzfを使用できます。
  • .tar.xzアーカイブがある場合は、tar -xJfを使用できます。
  • .tar.bz2アーカイブの場合、tar -xjfを使用できます。
12
Afriza N. Arief

プログラムをg ++ hello.cppでコンパイルしたと仮定します

Gccとg ++に相当するものは、それに応じてclangとclang ++です。それらはbinフォルダーにあります。

Clangのフォルダーをどこに配置するかは問題ではありません。重要なのは、後でそれらを移動しないことです。だからどこかに置いてください(私は$ HOMEが好きで、次はこれを想定します)

次に:

  1. $ PATH変数の前に追加します

export PATH=~/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/bin/:$PATH

  1. 〜/ .bashrcに追加して、これを永続的にします

    echo "export PATH =〜/ clang + llvm-3.2-x86_64-linux-ubuntu-12.04/bin /:\ $ PATH" >>〜/ .bashrc

これで、clang ++ hello.cppを実行できます。

2
A. Paschos

/home/sにclangをインストールしたいのですが。つまり、

/home/s
   bin  
   lib
   include 
   ...

私はUbuntuで次のことをしました:

wget <clang-binaries-tarball-url>
Sudo tar -xf <clang+llvm-..tar.xz> --strip-components=1 -C /home/s  

# Set the path environmental variable  
export PATH=/home/s/bin:$PATH

# Tell ldconfig about new shared library in /home/s/lib
cd /home/s
cat > libs.conf << "END"
/home/s/lib
END

Sudo mv libs.conf /etc/ld.so.conf.d/libs.conf
Sudo ldconfig

それをテストするには:

clang --version

出力は次のとおりです。

clang version 7.0.0 (tags/RELEASE_700/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/s/bin

C++ 17ファイルシステムをex1.cppでテストしてみましょう

#include <iostream>
#include <filesystem>

int main() {
    for(auto &file : std::filesystem::recursive_directory_iterator("./")) {
        std::cout << file.path() << '\n';
    }
}

コンパイルする

clang++ -std=c++17 -stdlib=libc++ -Wall -pedantic ex1.cpp -o ex1 -lc++fs

それを実行します

./ex1

出力:

"./ex1"
"./ex1.cpp"
2
yoonghm