Winbuntu
От: Шахтер Интернет  
Дата: 21.05.18 12:13
Оценка: 28 (5) +2
Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.
Самый быстрый способ получить C++17 под виндой.

Update.

Немного про WSL для начинающих здесь

Установив пакет xorg-dev вы можете писать и запускать X-Windows приложения под WSL.
Нужно только запустить XServer под Windows (например, VcXSrv) и добавить в bash.rc строчку

export DISPLAY=127.0.0.1:0.0
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Отредактировано 23.05.2018 7:19 Шахтер . Предыдущая версия .
Re: Winbuntu
От: AlexGin Беларусь  
Дата: 21.05.18 12:22
Оценка: -3
Здравствуйте, Шахтер, Вы писали:

Ш>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>Самый быстрый способ получить C++17 под виндой.

Уточнение — поднять Ubuntu в виртуалке? Я верно понимаю?

Что-то для этого нужно, кроме имеющегося уже у меня *.iso образа:
ubuntu-18.04-desktop-amd64.iso ?

Какая-то дополнительная утилита для Windows 10 — чтобы смонтировать эту Ubuntu 18.04?

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

P.P.S. Мне интересно именно опробовать C++17 под Linux
Отредактировано 21.05.2018 12:28 AlexGin . Предыдущая версия . Еще …
Отредактировано 21.05.2018 12:27 AlexGin . Предыдущая версия .
Re: Winbuntu
От: so5team https://stiffstream.com
Дата: 21.05.18 12:31
Оценка: 31 (2) +4
Здравствуйте, Шахтер, Вы писали:

Ш>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>Самый быстрый способ получить C++17 под виндой.

А еще есть сборки от MinGW-w64 (тынц) и NuWen MinGW, который сразу с Boost-ом в придачу (тынц). И работать будет прямо в Window-ом Command Propmt-е.
Re[2]: Winbuntu
От: Дрободан Фрилич СССР  
Дата: 21.05.18 12:52
Оценка: 6 (1)
AlexGin:


Ш>>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>>Самый быстрый способ получить C++17 под виндой.
AG>Уточнение — поднять Ubuntu в виртуалке? Я верно понимаю?
Нет.
Это реализация системных вызовов линукса в ядре Win10.

Подсистема Ubuntu появилась и в Windows Server 2016...

AG>Что-то для этого нужно, кроме имеющегося уже у меня *.iso образа:

AG>ubuntu-18.04-desktop-amd64.iso ?
ubuntu-18.04-desktop-amd64.iso — не пойдет — он тащит линуксовое ядро, ФС и пр.
В десятке нужные пакеты устанавливаются при помощи заклинания
sudo app-get install
Правда GUI проги поставить не просто (не пробовал, но читал).

AG>P.P.S. Мне интересно именно опробовать C++17 под Linux

Новый gcc неверняка есть и в Win версии (cygwin и/или mingw).
Отредактировано 21.05.2018 12:57 Bill Baklushi . Предыдущая версия .
Re[2]: Winbuntu
От: Pzz Россия https://github.com/alexpevzner
Дата: 21.05.18 16:42
Оценка:
Здравствуйте, AlexGin, Вы писали:

Ш>>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>>Самый быстрый способ получить C++17 под виндой.

AG>Уточнение — поднять Ubuntu в виртуалке? Я верно понимаю?


У 10-й венды теперь убунта входит прям в состав виндовс, и хорошо с ним интегрированна.

Подробностей не знаю, а не пользователь венды от слова совсем, у меня линух прям на голом железе работает
Re: Winbuntu
От: Pzz Россия https://github.com/alexpevzner
Дата: 21.05.18 16:47
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>Самый быстрый способ получить C++17 под виндой.

Но я так понимаю, программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.

P.S. Про убунту не знаю, а в федоре вполне работоспособный кросс-mingw является частью дистрибутива, и позволяет компилировать программы под венду прямо из линуха. И к нему куча всяких полезных предсобранных библиотек прилагается. У меня сейчас не самая свежая федора (все руки не доходят проапгрейдиться), но gcc в этом кросс-mingw имеет версию 7.2.0. Наверное, в самой свежей федоре и gcc поновее. Полагаю, что для убунты тоже есть подобные удобства.
Re[2]: Winbuntu
От: Блудов Павел Россия  
Дата: 22.05.18 01:59
Оценка: 3 (1) +1
Здравствуйте, Pzz, Вы писали:

Pzz>Но я так понимаю, программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


Нет. Есть понятие host platform, а есть target platform. Всякие прошивки для модемов не на модемах же собирают.
И Windows может быть target platform. Вот хорошая инструкция.

Gstreamer тоже бинарники для Windows собирает в Linux.

Обе эти инсрукции можно использовать, чтобы собирать родные приложения для Windows прямо в Winbuntu.
Re[2]: Winbuntu
От: Igore Россия  
Дата: 22.05.18 04:57
Оценка:
Здравствуйте, AlexGin, Вы писали:

Ш>>Под Windows 10 можно поднять нативную Ubuntu консоль (версии аж 18.04). Под неё app-get ставит сразу gcc-7.3.0.

Ш>>Самый быстрый способ получить C++17 под виндой.

AG>Уточнение — поднять Ubuntu в виртуалке? Я верно понимаю?


1) Turn on Developer Mode
Open Settings -> Update and Security -> For developers
Select the Developer Mode radio button
2) Open a command prompt. Run bash

https://docs.microsoft.com/en-us/windows/wsl/install-win10
Re[3]: Winbuntu
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.05.18 05:54
Оценка:
Здравствуйте, Блудов Павел, Вы писали:

Pzz>>Но я так понимаю, программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


БП>Нет. Есть понятие host platform, а есть target platform. Всякие прошивки для модемов не на модемах же собирают.

БП>И Windows может быть target platform. Вот хорошая инструкция.

Это я понимаю. Но на федоре, например, кросс-gcc — это отдельный набор пакетов. И версия gcc там в среднем не совпадает с gcc для хоста. Как в этом плане налажена жизнь в убунте, я не в курсе, но обычно довольно похоже.
Re[2]: Winbuntu
От: IID Россия  
Дата: 22.05.18 08:38
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Но я так понимаю, программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


Ты путаешь с костыльным MinGW. В WSL весь буханочный юзермод работает AS IS, неотличимо от родной буханочной среды.
kalsarikännit
Re[2]: Winbuntu
От: IID Россия  
Дата: 22.05.18 08:39
Оценка:
Здравствуйте, so5team, Вы писали:

S>А еще есть сборки от MinGW-w64 (тынц) и NuWen MinGW, который сразу с Boost-ом в придачу (тынц).


Костыли.

S>И работать будет прямо в Window-ом Command Propmt-е.


Пффф. А WSL по-твоему где работает ?
kalsarikännit
Re[3]: Winbuntu
От: IID Россия  
Дата: 22.05.18 08:45
Оценка:
Здравствуйте, Дрободан Фрилич, Вы писали:

ДФ>Подсистема Ubuntu появилась и в Windows Server 2016...


Релизный Windows 2016 (1607) это LTSC, в нём WSL нет и неизвестно когда появится. Переношу руками из 10ки.

Обещали добавить в экспериментально version 1709 (Semi-Annual Channel). Но он вроде бы только в Server Core редакции, без Desktop Experience.
Версии 1607 — 1709 друг на друга не обновляются, только чистая установка.

Так что в сервере WSL'я можно сказать что нету.

ДФ>Правда GUI проги поставить не просто (не пробовал, но читал).


Ничего сложного. X-Server поднимаешь на винде нативно, и прописываешь его адрес. Аналогично аудио.

https://www.youtube.com/watch?v=gq42KyW6XLU
kalsarikännit
Re[3]: Winbuntu
От: so5team https://stiffstream.com
Дата: 22.05.18 09:17
Оценка:
Здравствуйте, IID, Вы писали:

S>>А еще есть сборки от MinGW-w64 (тынц) и NuWen MinGW, который сразу с Boost-ом в придачу (тынц).


IID>Костыли.


Пруфы?
Re[3]: Winbuntu
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.05.18 09:41
Оценка: +1
Здравствуйте, IID, Вы писали:

Pzz>>Но я так понимаю, программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


IID>Ты путаешь с костыльным MinGW. В WSL весь буханочный юзермод работает AS IS, неотличимо от родной буханочной среды.


Ничего я не путаю. А вот ты путаешь MinGW с Cygwin
Re[4]: Winbuntu
От: IID Россия  
Дата: 22.05.18 10:15
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>>>программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


IID>>Ты путаешь с костыльным


Pzz>Ничего я не путаю.


Тогда поясни, почему выделенное.

Pzz>НА вот ты путаешь MinGW с Cygwin


оба-два говно.
kalsarikännit
Отредактировано 22.05.2018 10:21 IID . Предыдущая версия .
Re[4]: Winbuntu
От: IID Россия  
Дата: 22.05.18 10:21
Оценка:
Здравствуйте, so5team, Вы писали:

S>Пруфы?


Это чистый юзермод. На уровне юзермода нормально не реализовать юниксовые особенности. Типа форка (хотя он доступен на уровне Native API), работы с анлинкнутыми файлами, удаление запущенного образа, человеческое хранение доп. юниксовых атрибутов и запрещённых на NTFS символов. В WSL серъёзная поддержка на уровне ядра ОС, даже специальный тип процессов сделали — PicoProcess.
kalsarikännit
Re[5]: Winbuntu
От: so5team https://stiffstream.com
Дата: 22.05.18 10:27
Оценка:
Здравствуйте, IID, Вы писали:

IID>На уровне юзермода нормально не реализовать юниксовые особенности. Типа форка (хотя он доступен на уровне Native API), работы с анлинкнутыми файлами, удаление запущенного образа, человеческое хранение доп. юниксовых атрибутов и запрещённых на NTFS символов. В WSL серъёзная поддержка на уровне ядра ОС, даже специальный тип процессов сделали — PicoProcess.


Какое отношение это все имеет к возможности работы с C++17 в gcc под Windows?
Re[5]: Winbuntu
От: Pzz Россия https://github.com/alexpevzner
Дата: 22.05.18 10:45
Оценка:
Здравствуйте, IID, Вы писали:

IID>Тогда поясни, почему выделенное.


Венда со встроенной убунтой поддерживает теперь два формата исполняемых файлов: родной вендовый EXE, и родной линуксный ELF. Так вот, я хотел сказать, что gcc, который там внутри убунты, выдает на выходе ELF, а не EXE. И я полагаю, что если ты профессионально пишешь коробочный софтварий под венду, то тебе это не подходит, тебе нужен вендовый EXE, обернутый в вендовый инсталлятор.

Я, кстати, не верю, что в этой конструкции, как кто-то высказался "вендовое ядро исполняет системные запросы линуха". Полагаю, что они запустили настоящее линуксное ядро, или в виртуалке, или в режиме user mode linux, и аккуратно протоптали в user space необходимые дорожки между двумя мирами, чтобы запущенная таким образом линуксная программа смотрелась более-менее, как родная.

Pzz>>НА вот ты путаешь MinGW с Cygwin


IID>оба-два говно.


Нет. MinGW, в первую очередь — это gcc, выдающий вендовые EXE на выходе. В режиме кросс-компилятора (из линуха в венду) он очень даже удобен и неплох.

А что к нему прилагается какой-то минимальный псевдо-юниксный набор шеловских команд, то это не чтобы почувствовать себя в венде, как в линухе, а чтобы юниксовские makefile и сборочные скрипты худо-бедно под вендой запускались.
Re[6]: Winbuntu
От: IID Россия  
Дата: 22.05.18 11:15
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>>программы, скомпилированные этим gcc, только в линухе и можно запускать, пусть и встроенном в венду.


Pzz>Венда со встроенной убунтой поддерживает теперь два формата исполняемых файлов: родной вендовый EXE, и родной линуксный ELF. Так вот, я хотел сказать, что gcc, который там внутри убунты, выдает на выходе ELF, а не EXE. И я полагаю, что если ты профессионально пишешь коробочный софтварий под венду, то тебе это не подходит, тебе нужен вендовый EXE, обернутый в вендовый инсталлятор.


А я хотел уточнить что скомпилированные ELF будут работать в любом линуксе, не только встроенном в винду.

Pzz>Я, кстати, не верю, что в этой конструкции, как кто-то высказался "вендовое ядро исполняет системные запросы линуха". Полагаю, что они запустили настоящее линуксное ядро, или в виртуалке, или в режиме user mode linux, и аккуратно протоптали в user space необходимые дорожки между двумя мирами, чтобы запущенная таким образом линуксная программа смотрелась более-менее, как родная.


Нет, никакого ядра линукса в Win, разумеется, нет. Есть разница в семантике системных вызовов, но суть их в любой ОС очень похожа. Объекты синхронизации, работа с памятью, файловый ввод-вывод и т.д. Линуксовые юзермодные сисколлы транслируются внутри WSL в вызовы сервисов NT ядра. Я лично переносил WSL из 10ки в 2016 сервер, где его нет. Весь WSL это 1 драйвер и 1 сервис.

kalsarikännit
Re[6]: Winbuntu
От: IID Россия  
Дата: 22.05.18 11:17
Оценка:
Здравствуйте, so5team, Вы писали:

S>Какое отношение это все имеет к возможности работы с C++17 в gcc под Windows?


На костылях тоже можно передвигаться, не спорю.
kalsarikännit
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.