Как установить CLang с использованием предварительно скомпилированных двоичных файлов?

Как установить CLang в Ubuntu, используя предварительно скомпилированные двоичные файлы CLang, которые я скачал?

Вот как я скачал CLang: «Страница загрузки LLVM» -> «Загрузить LLVM 3.2» -> «Двоичные файлы Clang для Ubuntu-12.04 / x86_64» ( http://llvm.org/releases/3.2/clang+llvm-3.2-x86_64-linux-ubuntu-12.04.tar.gz .)

Затем я развернул архив в папку на моей 64-битной машине Ubuntu 12.04 LTS. Содержимое развернутой папки выглядит следующим образом:

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

Вопрос: что мне делать дальше? Нужно ли самому копировать их в некоторые папки, и если да, то какие именно? Большинство инструкций, которые я нашел в Интернете, предназначены для сборки CLang из исходного кода, который здесь не применим.

Я новичок в большинстве этих инструментов. Я создал основную программу на C ++ hello-world и смог скомпилировать и запустить ее, используя GCC и autotools. Теперь я хочу скомпилировать ту же программу с CLang.

14

Решение

Вы можете выполнить тот же шаг, как указано в 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,
12

Другие решения

Предполагая, что вы скомпилировали свою программу с помощью g ++ hello.cpp

Эквивалентами gcc и g ++ являются clang и clang ++ соответственно. Они находятся в папке с мусорным баком.

Неважно, куда вы помещаете папки 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

Я хотел бы установить Clang в /home/s, т.е.

/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"
1
По вопросам рекламы [email protected]