Я пытался в течение 3 дней установить лязг 5.0 на машине Ubuntu 16.04. Я попробовал различный руководства, но ничто, кажется, не работает. Когда я пытаюсь просто захватить последнее от SVN, и сборка/установка (как детализировано здесь), пытаясь скомпилировать простую программу приводит к:
> clang++ basic.cpp
/usr/include/wchar.h:39:11: fatal error: 'stdarg.h' file not found
# include <stdarg.h>
Я затем пытался установить -DGCC_INSTALL_PREFIX
флаг для cmake
перед зданием, но это приводит к еще лучшей ошибке:
> 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
...
Кто-то мог рассматривать меня как идиот и объяснить пошаговый, как установить лязг 5.0? Или укажите на меня на руководство, за которым могут следовать даже основные дураки как я? Если также можно объяснить, как создать и установить libc ++ для C++ 17, я был бы вечно благодарен.
Обновление: кажется, что я не устанавливаю лязг правильно, так как это - вывод подробной компиляции с лязгом:
...
#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
...
Сначала мы должны добавить репозитории 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.h
является частью пакета libstdc++-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)
Так что кажется, что установка [ 1112] пакет должен решить эту вашу ошибку, потому что я не уверен, что вы сделали.