GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 21.05.18 10:05
Оценка:
Доброе время суток, уважаемые коллеги!

Я осваиваю новый для меня C++17, используя MSVC-2017 CE. С опцией для студии, требуемой для компилятора, успешно разобрался.

Задумался на тему: для Linux (UBUNTU 14.04; Debian) — есть GCC и Clang.
Я так понимаю, что они также как и студия, поддерживают C++17?

Проинсталлировал я вчера Clang 3.9 (под UBUNTU 14.04), но он НЕ знает ничего насчёт C++17

Вопрос: как можно приспособить Linux для задач компиляции и линковки кодов C++17?

Примечание: меня интересует прежде всего применение этого добра в среде UBUNTU 14.04 (и в некоторой степени Debian 8).

Гуглил на данную тему, советы есть, но именно насчет работы с C++17 информации мало.

Заранее спасибо, за любые подсказки!
Отредактировано 21.05.2018 10:09 AlexGin . Предыдущая версия .
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: vopl Россия  
Дата: 21.05.18 10:09
Оценка: 6 (1) +1
Здравствуйте, AlexGin, Вы писали:

AG>Проинсталлировал я вчера Clang 3.9 (под UBUNTU 14.04), но он НЕ знает ничего насчёт C++17


3.9 старенький, ему надо явно говорить "-std=c++17", бери версию повыше, там из коробки. Смотри тут

Отредактировано 21.05.2018 10:13 vopl . Предыдущая версия .
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: vopl Россия  
Дата: 21.05.18 10:22
Оценка:
Здравствуйте, vopl, Вы писали:

V>3.9 старенький, ему надо явно говорить "-std=c++17"


Наврал

You can use Clang in C++17 mode with the -std=c++17 option (use -std=c++1z in Clang 4 and earlier)

для 3.9 надо "-std=c++1z"
Re[3]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 21.05.18 10:25
Оценка:
Здравствуйте, vopl, Вы писали:

V>

V>You can use Clang in C++17 mode with the -std=c++17 option (use -std=c++1z in Clang 4 and earlier)

V>для 3.9 надо "-std=c++1z"

Пробовал я эту опцию — бесполезно
Всё равно — была ругань на новые синтаксические выражения.
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: LaptevVV Россия  
Дата: 21.05.18 10:26
Оценка: 9 (1)
AG>Вопрос: как можно приспособить Linux для задач компиляции и линковки кодов C++17?
AG>Примечание: меня интересует прежде всего применение этого добра в среде UBUNTU 14.04 (и в некоторой степени Debian 8).
ПОЛНЫЙ С++17 реализует gcc 8
Шахтер тут недавно постил про него.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: GCC и Clang для C++17 (Ubuntu, Debian)
От: vopl Россия  
Дата: 21.05.18 10:33
Оценка:
Здравствуйте, AlexGin, Вы писали:

V>>для 3.9 надо "-std=c++1z"


AG>Пробовал я эту опцию — бесполезно

AG>Всё равно — была ругань на новые синтаксические выражения.

например?
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 21.05.18 10:35
Оценка: +3 :)
Здравствуйте, AlexGin, Вы писали:

AG>Доброе время суток, уважаемые коллеги!


AG>Я осваиваю новый для меня C++17, используя MSVC-2017 CE. С опцией для студии, требуемой для компилятора, успешно разобрался.


AG>Задумался на тему: для Linux (UBUNTU 14.04; Debian) — есть GCC и Clang.

Нафталином обмазываешься перед тем ка кза ПеКа садиться? Давно уже 18 убунта есть с новейшим gcc и clang где есть даже частично 21 стандарт.
AG>Я так понимаю, что они также как и студия, поддерживают C++17?
AG>Заранее спасибо, за любые подсказки!
Проапгрейди релиз убунты до 18.
Sic luceat lux!
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 21.05.18 10:56
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Проапгрейди релиз убунты до 18.


На НОВОМ компьютере (на ноуте) — за ноябрь 2017 выпуска
https://catalog.onliner.by/notebook/hp/2hp09ea
Работает только UBUNTU 14.04!

Win10 — само собой работает

Также работает Debian 8 (а вот Debian 9: не хочет устанавливаться — нет драйверов wi-fi, старые от Debian 8 не подходят).
В общем в мирке ОС Linux — всё очень удивительно

Пробовал — падают сразу после инсталляции: UBUNTU 16.04; UBUNTU 17.10; UBUNTU 18.04 — далее даже не стартуют

P.S. Апгрейд системы UBUNTU 14.04 — до более свежей — заканчивается аналогично: после него даже не стартует!
Отредактировано 21.05.2018 11:10 AlexGin . Предыдущая версия . Еще …
Отредактировано 21.05.2018 11:06 AlexGin . Предыдущая версия .
Отредактировано 21.05.2018 11:04 AlexGin . Предыдущая версия .
Отредактировано 21.05.2018 11:03 AlexGin . Предыдущая версия .
Отредактировано 21.05.2018 11:03 AlexGin . Предыдущая версия .
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 21.05.18 11:09
Оценка:
Здравствуйте, LaptevVV, Вы писали:

AG>>Вопрос: как можно приспособить Linux для задач компиляции и линковки кодов C++17?

AG>>Примечание: меня интересует прежде всего применение этого добра в среде UBUNTU 14.04 (и в некоторой степени Debian 8).
LVV>ПОЛНЫЙ С++17 реализует gcc 8
LVV>Шахтер тут недавно постил про него.

Да — gcc 8 успешно работает с C++17
ОГРОМНОЕ СПАСИБО!
Отредактировано 22.05.2018 15:24 AlexGin . Предыдущая версия .
Re[3]: GCC и Clang для C++17 (Ubuntu, Debian)
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 21.05.18 11:46
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Работает только UBUNTU 14.04!

Понятно, тогда это реально проблема.
AG>Также работает Debian 8 (а вот Debian 9: не хочет устанавливаться — нет драйверов wi-fi, старые от Debian 8 не подходят).
AG>В общем в мирке ОС Linux — всё очень удивительно
Может где-то пропиетаные либы есть из которых можно собрать модуль ядра?
AG>Пробовал — падают сразу после инсталляции: UBUNTU 16.04; UBUNTU 17.10; UBUNTU 18.04 — далее даже не стартуют
У меня есть подозрение что это может быть связано с UEFI, тут нужно разобрваться, попробуй на SO поискать ответ.
AG>P.S. Апгрейд системы UBUNTU 14.04 — до более свежей — заканчивается аналогично: после него даже не стартует!
Как вариант, можно попробовать поставить msys2/mingw и через него подцепить новый gcc в VS Code под винду, но решение так себе.
Sic luceat lux!
Re[4]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 21.05.18 13:49
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Может где-то пропиетаные либы есть из которых можно собрать модуль ядра?

Боюсь, что это самый долгий и трудный (тернистый) путь...

AG>>Пробовал — падают сразу после инсталляции: UBUNTU 16.04; UBUNTU 17.10; UBUNTU 18.04 — далее даже не стартуют

K>У меня есть подозрение что это может быть связано с UEFI, тут нужно разобрваться, попробуй на SO поискать ответ.

Я в курсе, что любой Linux — ставим в обычном режиме (не на UEFI mode режиме, а на Legasy CSM BIOS режиме). Тем не менее — проблемы есть.
Более того, установщик UBUNTU имеет пробный режим запуска — try UBUNTU. Так этот режим у меня также корректно работает только для UBUNTU 14.04.
Для всех остальных (указанных выше в данной ветке) версий UBUNTU — пробный режим благополучно крашится

AG>>P.S. Апгрейд системы UBUNTU 14.04 — до более свежей — заканчивается аналогично: после него даже не стартует!

K>Как вариант, можно попробовать поставить msys2/mingw и через него подцепить новый gcc в VS Code под винду, но решение так себе.

Для винды — у меня нет никаких проблем:
MSVC-2017 CE — в настройках C/C++ -> CommandLine -> AdditionalOptions запишем: /std:c++17
и всё отлично работает

P.S. Так как все остальные разновидности C++ (11 & 14) я опробовал под UBUNTU/Debian, то у меня "чешутся руки" проделать то же для C++17.

Попутно замечу, что для других стандартов всё ставится "из коробки" c Qt v5.10.1:
здесь: https://download.qt.io/official_releases/qt/5.10/5.10.1
берём: qt-opensource-linux-x64-5.10.1.run
и просто ставим (без apt-get install, просто в стиле винды)!

При этом, перед установкой пакета qt-opensource-linux-x64-5.10.1.run я конечно же выполнял следующие установки:
# apt-get install qt5*-dev
# apt-get install build-essential libgl1-mesa-dev
# apt-get install libboost-all-dev

После этого — у меня получился GCC 4.8, но он мне для C++17 — не помощник:
https://gcc.gnu.org/projects/cxx-status.html#cxx14
Отредактировано 21.05.2018 14:02 AlexGin . Предыдущая версия . Еще …
Отредактировано 21.05.2018 13:57 AlexGin . Предыдущая версия .
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: savitar  
Дата: 21.05.18 15:04
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>...


я так понимаю на этом ноутбуке стоят Linux и Windows 10, тогда почему бы не поставить VMWare Player в десятку и оттуда уже запускать любые дистрибутивы любых линуксов.
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: σ  
Дата: 21.05.18 18:58
Оценка: 9 (1)
Есть PPA со свежими версиями GCC https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=trusty
У LLVM/CLANG есть свои репозитории, см. https://apt.llvm.org/
Отредактировано 21.05.2018 19:03 σ . Предыдущая версия . Еще …
Отредактировано 21.05.2018 19:01 σ . Предыдущая версия .
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: σ  
Дата: 21.05.18 18:59
Оценка: +1
S>я так понимаю на этом ноутбуке стоят Linux и Windows 10, тогда почему бы не поставить VMWare Player WSL в десятку
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 22.05.18 18:28
Оценка:
Здравствуйте, σ, Вы писали:

σ>Есть PPA со свежими версиями GCC https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=trusty

σ>У LLVM/CLANG есть свои репозитории, см. https://apt.llvm.org/

Огромное Спасибо!
Удалось установить GCC v8, а также и clang-5.0 и clang-6.0 — благодаря подсказкам, приведенным по данным ссылкам!
И всё это на UBUNTU 14.04!
Re: GCC и Clang для C++17 (Ubuntu, Debian)
От: Masterspline  
Дата: 22.05.18 19:40
Оценка:
https://apt.llvm.org/ и будет тебе самый clang 6.0 (с поддержкой c++17) для твоего Ubuntu Trusty (14.04). Как подключить gcc можно тоже поискать.

Еще вариант — использовать docker (там и gcc последний будет и clang).
Re[2]: GCC и Clang для C++17 (Ubuntu, Debian)
От: AlexGin Беларусь  
Дата: 22.05.18 20:08
Оценка:
Здравствуйте, Masterspline, Вы писали:

M>https://apt.llvm.org/ и будет тебе самый clang 6.0 (с поддержкой c++17) для твоего Ubuntu Trusty (14.04). Как подключить gcc можно тоже поискать.

+100500
Спасибо — этот вариант уже подсказали ранее.

M>Еще вариант — использовать docker (там и gcc последний будет и clang).


Это — оно:
https://docs.docker.com/glossary/?term=Docker
как я понял — некий "адаптер" для выполнения компиляции где-то на сервере? Так?
Re[3]: GCC и Clang для C++17 (Ubuntu, Debian)
От: σ  
Дата: 22.05.18 23:43
Оценка: 9 (1)
Здравствуйте, AlexGin, Вы писали:

AG>Здравствуйте, σ, Вы писали:


σ>>Есть PPA со свежими версиями GCC https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=trusty

σ>>У LLVM/CLANG есть свои репозитории, см. https://apt.llvm.org/

AG>Огромное Спасибо!

AG>Удалось установить GCC v8, а также и clang-5.0 и clang-6.0 — благодаря подсказкам, приведенным по данным ссылкам!

На всякий случай: ненумерованный репозиторий
deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main
это clang-7.0
Re[3]: GCC и Clang для C++17 (Ubuntu, Debian)
От: Skorodum Россия  
Дата: 23.05.18 11:36
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Это — оно:

AG>https://docs.docker.com/glossary/?term=Docker
AG>как я понял — некий "адаптер" для выполнения компиляции где-то на сервере? Так?
Нет. Легкая и удобная виртуальная среда. Для поганять разные компиляторы в "чистой среде" — самое то.
https://hub.docker.com/_/gcc/
Re[3]: GCC и Clang для C++17 (Ubuntu, Debian)
От: flаt  
Дата: 25.05.18 18:12
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>На НОВОМ компьютере (на ноуте) — за ноябрь 2017 выпуска

AG>Работает только UBUNTU 14.04!

1. Зачем ставить Linux на голое железо ноутбука, если основная цель — поиграться с С++17? Есть же WSL (в случае Win10) или виртуалки, в конце концов
2. Зачем ставить Linux, если основная цель — поиграться с С++17? Есть же GCC (mingw-64, к примеру), Clang
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.