ダウンロードした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で同じプログラムをコンパイルしたいと思います。
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
を使用できます。プログラムをg ++ hello.cppでコンパイルしたと仮定します
Gccとg ++に相当するものは、それに応じてclangとclang ++です。それらはbinフォルダーにあります。
Clangのフォルダーをどこに配置するかは問題ではありません。重要なのは、後でそれらを移動しないことです。だからどこかに置いてください(私は$ HOMEが好きで、次はこれを想定します)
次に:
export PATH=~/clang+llvm-3.2-x86_64-linux-ubuntu-12.04/bin/:$PATH
〜/ .bashrcに追加して、これを永続的にします
echo "export PATH =〜/ clang + llvm-3.2-x86_64-linux-ubuntu-12.04/bin /:\ $ PATH" >>〜/ .bashrc
これで、clang ++ hello.cppを実行できます。
/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"