Russian Qt Forum
Ноябрь 23, 2024, 12:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кроссплатформенность  (Прочитано 4796 раз)
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?
 Разъясните пожалуйста!
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 15, 2014, 13:18 »

можно из одного кода собирать на разных платформах.

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SergeyVslnko
Гость
« Ответ #2 : Июль 15, 2014, 13:54 »

можно из одного кода собирать на разных платформах.

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

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

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Июль 15, 2014, 14:07 »

2SergeyVslnko,

Не, ну это несерьезно, ты хоть бы почитал Вики, погуглил прежде чем спрашивать такое.
Записан

ArchLinux x86_64 / Win10 64 bit
SergeyVslnko
Гость
« Ответ #4 : Июль 15, 2014, 14:20 »

2SergeyVslnko,

Не, ну это несерьезно, ты хоть бы почитал Вики, погуглил прежде чем спрашивать такое.
Я уточнить хотел
Записан
Bepec
Гость
« Ответ #5 : Июль 15, 2014, 14:54 »

Да, скомпилированное под одну платформу на ней и запуститься.

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

Это не Java. Это C++ и потому он в разы быстрее и имеет больше возможностей благодаря как раз компиляции Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Июль 15, 2014, 18:31 »

компиляция идет в нативный код ОС, поэтому приложение запускается только на ней
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #7 : Июль 15, 2014, 18:34 »

Это C++ и потому он в разы быстрее

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

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

например?
Записан
Bepec
Гость
« Ответ #8 : Июль 15, 2014, 18:44 »

Быстрее в разы - это уж не обессудьте, простой пример - сервер игровой на С++ поддерживает 15-25к пользователей. На Java предел 5к. Выше 5к - умирает к чертям Веселый

Например я могу выстрелить себе в ногу и намусорить Веселый
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Июль 15, 2014, 19:06 »

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

Например я могу выстрелить себе в ногу и намусорить Веселый
На любом языке программирования можно выстрелить себе в ногу, в той или иной степени. Я не спец в яве, но там таких вариантов не меньше, чем в c++.
« Последнее редактирование: Июль 15, 2014, 19:38 от Old » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #10 : Июль 15, 2014, 20:20 »

Кроссплатформенность - это ..
Это довольно широкое понятие которое можно трактовать по-разному  Улыбающийся

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

Что касается "розовой мячты" нажать раз на бубочку и получить результат для всех платформ - ну так если сказано "плюсы", то о байт-коде речь не идет. Есть IDE компилирующие и под др платформу(ы), но мое мнение - не стоит оно того, "не родное"
Записан
SergeyVslnko
Гость
« Ответ #11 : Июль 16, 2014, 11:09 »

Всем спасибо за участие!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.263 секунд. Запросов: 23.