Russian Qt Forum

Qt => Вопросы новичков => Тема начата: SergeyVslnko от Июль 15, 2014, 13:11



Название: Кроссплатформенность
Отправлено: SergeyVslnko от Июль 15, 2014, 13:11
Здравствуйте, люди добрые!
Недавно я впервые поработал в Qt (пришлось видоизменять проект под win64), возник такой вопрос: в чём заключается кроссплатформенность Qt? Не переводит же он в байт-код как Java. Я скачал Qt 5.3.1 for Windows 32-bit (VS 2010)  оф.сайта, но там были и Qt 5.3.1 for Android,Qt 5.3.1 for Linux 32-bit и Qt 5.3.1 for Mac. Значит ли это, что для того чтобы вести разработку под другие платфомы мне нужно скачать другую среду и в ней скомпилировать код заново? Или же в моей первой установленной нужно указать целевую архитектуру? Например если я захочу собрать проект под android?
 Разъясните пожалуйста!


Название: Re: Кроссплатформенность
Отправлено: kambala от Июль 15, 2014, 13:18
можно из одного кода собирать на разных платформах.

если ты хочешь из одной ОС собирать сразу под другие, то нужен кросс-компилятор.


Название: Re: Кроссплатформенность
Отправлено: SergeyVslnko от Июль 15, 2014, 13:54
можно из одного кода собирать на разных платформах.

если ты хочешь из одной ОС собирать сразу под другие, то нужен кросс-компилятор.

kambala, вопрос в догонку: а windows классы (MFC например) не могут быть скомпилированы под другую ОС, даже кросс-компиляторами? Если так, то в библиотеках Qt предусмотрена реализация методов Qt классов под разные ОС?
Т.е. в этом преимущество Qt?
В этом и заключается кроссплатформенность?
Но всё же это не байт-код, и скомпилированное приложение под одну ОС, только на ней и запуститься?


Название: Re: Кроссплатформенность
Отправлено: kuzulis от Июль 15, 2014, 14:07
2SergeyVslnko,

Не, ну это несерьезно, ты хоть бы почитал Вики (http://ru.wikipedia.org/wiki/Qt), погуглил прежде чем спрашивать такое.


Название: Re: Кроссплатформенность
Отправлено: SergeyVslnko от Июль 15, 2014, 14:20
2SergeyVslnko,

Не, ну это несерьезно, ты хоть бы почитал Вики (http://ru.wikipedia.org/wiki/Qt), погуглил прежде чем спрашивать такое.
Я уточнить хотел


Название: Re: Кроссплатформенность
Отправлено: Bepec от Июль 15, 2014, 14:54
Да, скомпилированное под одну платформу на ней и запуститься.

Кроссплатформенность - это единообразие кода для всех платформ. Т.е. вы можете написать хелло ворлд и скомпилировать его на любую доступную платформу с использованием сборок. И ничего менять не придётся.

Это не Java. Это C++ и потому он в разы быстрее и имеет больше возможностей благодаря как раз компиляции :)


Название: Re: Кроссплатформенность
Отправлено: kambala от Июль 15, 2014, 18:31
компиляция идет в нативный код ОС, поэтому приложение запускается только на ней


Название: Re: Кроссплатформенность
Отправлено: Alex Custov от Июль 15, 2014, 18:34
Это C++ и потому он в разы быстрее

да ладно, прямо в разы? Интересно бы было посмотреть тесты современных компиляторов и JVM.

и имеет больше возможностей

например?


Название: Re: Кроссплатформенность
Отправлено: Bepec от Июль 15, 2014, 18:44
Быстрее в разы - это уж не обессудьте, простой пример - сервер игровой на С++ поддерживает 15-25к пользователей. На Java предел 5к. Выше 5к - умирает к чертям :D

Например я могу выстрелить себе в ногу и намусорить :D


Название: Re: Кроссплатформенность
Отправлено: Old от Июль 15, 2014, 19:06
Быстрее в разы - это уж не обессудьте, простой пример - сервер игровой на С++ поддерживает 15-25к пользователей. На Java предел 5к. Выше 5к - умирает к чертям :D
Это не пример. Можно и на c++ написать такой сервер, который умрет и на 1000 клиентах, а можно на java написать такой, что и 25000 выдержит.
Не стоит надеяться, что если пишешь на плюсах, то код сам собой всегда будет быстрее, это заблуждение.

Например я могу выстрелить себе в ногу и намусорить :D
На любом языке программирования можно выстрелить себе в ногу, в той или иной степени. Я не спец в яве, но там таких вариантов не меньше, чем в c++.


Название: Re: Кроссплатформенность
Отправлено: Igors от Июль 15, 2014, 20:20
Кроссплатформенность - это ..
Это довольно широкое понятие которое можно трактовать по-разному  :)

Это не Java. Это C++ и потому он в разы быстрее и имеет больше возможностей благодаря как раз компиляции :)
Ну что Вы опять самозабвенно заливаете :) Не надо, по скорости жаба "вполне", уступает немного, никаких разов нет.

Что касается "розовой мячты" нажать раз на бубочку и получить результат для всех платформ - ну так если сказано "плюсы", то о байт-коде речь не идет. Есть IDE компилирующие и под др платформу(ы), но мое мнение - не стоит оно того, "не родное"


Название: Re: Кроссплатформенность
Отправлено: SergeyVslnko от Июль 16, 2014, 11:09
Всем спасибо за участие!