如何使用我下载的CLang预编译二进制文件在Ubuntu上安装CLang?
以下是我下载CLang的方法:“LLVM下载页面” - > “下载LLVM 3.2” - > “用于Ubuntu-12.04 / x86_64的Clang二进制文件”(http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz。)
然后,我将存档扩展到我的Ubuntu 12.04 LTS 64位计算机上的文件夹中。展开文件夹的内容如下所示:
$ ls clang+llvm-3.2-x86_64-linux-ubuntu-12.04
bin docs include lib share
问题:接下来我该怎么办?我是否必须自己将这些复制到一些文件夹中,如果是这样,那究竟是哪些?我在网上找到的大多数说明都是从源代码构建CLang,这里不适用。
我是大多数这些工具的新手。我创建了一个基本的hello-world C ++程序,并且能够使用GCC和autotools编译和运行它。现在,我想用CLang编译相同的程序。
答案 0 :(得分:12)
您可以按照https://askubuntu.com/questions/89615/how-do-i-install-llvm-clang-3-0
中提到的相同步骤进行操作使用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
。答案 1 :(得分:2)
假设您使用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”&gt;&gt;的〜/ .bashrc
现在你可以做clang ++ hello.cpp
答案 2 :(得分:1)
我想在/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
让我们使用ex1.cpp
来测试C ++ 17文件系统
#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"