Задать вопрос

Как писать кроссплатформенные приложения на C++?

Добрый день. Хочу научиться писать crossplatform ПО.
Сейчас использую только visual studio 2015.
Какой GUI выбрать новичку? Нашел такие - GTK, QT, WxWidgets.
Какие компиляторы использовать, привык к удобству Visual Studio, но там вроде как можно писать только консольные приложения под linux.
Советуют eclipse и clion, но clion боюсь, так как в cmake вообще ноль.
Помогите опытом.
Платформы - Windows 86_64, Linux 86_64, Andoird
  • Вопрос задан
  • 7338 просмотров
Подписаться 8 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 6
Adamos
@Adamos
GTk - это не С++, это С.
wxWidgets - легкие и сильно похожие на MFC / VCL, что когда-то было плюсом. Сам использую эту библиотеку для кроссплатформенной разработки, но вам сейчас, на распутье, советую все-таки Qt. А еще советую писать не под Виндой. Из тех же соображений, из которых в вебе не верстают изначально под Ослик. Принцип "работаем по стандартам, добавляем костыли для девиаций", а не наоборот.
Ответ написан
Rou1997
@Rou1997
Из кроссплатформенного IDE Qt Creator лучше и проще всего, но вы наверняка хотите не того, даже не указали на какие именно платформы, не говоря о какие именно приложения, тот же Qt именно для платформы Android очень сомнительное решение как и C++ в целом, а для Arduino не существует вовсе, а это тоже платформа.
Ответ написан
TrueBers
@TrueBers
Гуглю за еду
Кроссплатформенно можно писать на чём угодно. Графические приложения сейчас — это от силы 10 процентов всего, что пишется. Всё уходит в веб, если хотите хороший гуй и быстро, берите Chromium Engine Framework, верстайте дизайн на коленке, и всё быстро и круто получается, на нём сейчас пишут подавляющее большинство графических потребительских приложений.
Мало того, приличное количество последних популярных сред разработки, всяких редакторов, написано на... JavaScript! На Node.js и платформе Electron. Тупо, быстрее сверстать отдельно фронтенд, какую-то модель, бекенд, сразу видеть изменения, чем сидеть ждать, пока перекомпилируется Qt, выкинет ошибку, которая оказывается багом, который не хотят чинить, и т.п.
Вижуал студия очень хреново подходит для кроссплатформенной разработки, не как среда, а как компилятор, у неё своё представление о стандарте языка, базовые вещи могут не поддерживаться, либо поддерживаться в своём, очень странном виде.
Сначала нужно определиться, что вы хотите писать и нужен ли вообще графический интерфейс для этого.
Ответ написан
@cap_nemo
На GTK писать под С++ не очень удобно, так как GTK предназначен для С.
Остальной выбор не очень велик из того, что Вы сами нашли: QT или WxWidgets. Многие могут и будут рекомендовать QT и это не плохой выбор. У этой библиотеки есть существенный момент - это его лицензия и ее стоимость. Если Вы инди-разработчик, то для вас это может стать потенциальной проблемой в будущем. WxWidgtets хорошая библиотека и у нее более гибкая лицензия, есть русская документация (перевод) - поэтому я рекомендую ее. В качестве среды разработки могу рекомендовать CodeBlocks. Она сама использует WxWidgets, и работает под Windows и под Linux. В ней так же есть конструктор GUI интерфейсов для WxWidgets. Тот же Codeblocks позволяет настроить различные компиляторы, в том числе и для Arduino и подобных процессоров.
В качестве компилятора - лучше не использовать Visual C, так как он может запросто отходить от стандартов языка, это обычная практика Microsoft. Лучше писать под Linux, так как там по субъективным впечатлениям компиляция осуществляется быстрее в 1,5-2 раза чем на Windows для небольших приложений. С Андроидом все сложнее, так как чтобы в нем писать на С++ надо сильно постараться. Для Андрода есть другие решения, только с ними тоже не все просто из-за лицензий и т.п.
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Учите Qt, очень удобная штука, первые шаги советую сделать без IDE, чтоб понять, как оно работает. Из коробки в качестве IDE идёт qt creator, не сказать, что прям идеальный, но довольно удобный инструмент, вроде можно и VS использовать, но я не пробовал.
Ответ написан
Комментировать
@numfin
Почему нельзя писать каждое приложение под свою ось? Ну там максимально похожее...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы