Russian Qt Forum
Ноябрь 23, 2024, 11:45
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Вопросы новичков
>
Кроссплатформенность
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Кроссплатформенность (Прочитано 4792 раз)
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
Сообщений: 4747
Re: Кроссплатформенность
«
Ответ #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
Гость
Re: Кроссплатформенность
«
Ответ #2 :
Июль 15, 2014, 13:54 »
Цитата: kambala от Июль 15, 2014, 13:18
можно из одного кода собирать на разных платформах.
если ты хочешь из одной ОС собирать сразу под другие, то нужен кросс-компилятор.
kambala, вопрос в догонку: а windows классы (MFC например) не могут быть скомпилированы под другую ОС, даже кросс-компиляторами? Если так, то в библиотеках Qt предусмотрена реализация методов Qt классов под разные ОС?
Т.е. в этом преимущество Qt?
В этом и заключается кроссплатформенность?
Но всё же это не байт-код, и скомпилированное приложение под одну ОС, только на ней и запуститься?
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Кроссплатформенность
«
Ответ #3 :
Июль 15, 2014, 14:07 »
2SergeyVslnko,
Не, ну это несерьезно, ты хоть бы почитал
Вики
, погуглил прежде чем спрашивать такое.
Записан
ArchLinux x86_64 / Win10 64 bit
SergeyVslnko
Гость
Re: Кроссплатформенность
«
Ответ #4 :
Июль 15, 2014, 14:20 »
Цитата: kuzulis от Июль 15, 2014, 14:07
2SergeyVslnko,
Не, ну это несерьезно, ты хоть бы почитал
Вики
, погуглил прежде чем спрашивать такое.
Я уточнить хотел
Записан
Bepec
Гость
Re: Кроссплатформенность
«
Ответ #5 :
Июль 15, 2014, 14:54 »
Да, скомпилированное под одну платформу на ней и запуститься.
Кроссплатформенность - это единообразие кода для всех платформ. Т.е. вы можете написать хелло ворлд и скомпилировать его на любую доступную платформу с использованием сборок. И ничего менять не придётся.
Это не Java. Это C++ и потому он в разы быстрее и имеет больше возможностей благодаря как раз компиляции
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Кроссплатформенность
«
Ответ #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
Сообщений: 2063
Re: Кроссплатформенность
«
Ответ #7 :
Июль 15, 2014, 18:34 »
Цитата: Bepec от Июль 15, 2014, 14:54
Это C++ и потому он в разы быстрее
да ладно, прямо в разы? Интересно бы было посмотреть тесты современных компиляторов и JVM.
Цитата: Bepec от Июль 15, 2014, 14:54
и имеет больше возможностей
например?
Записан
Bepec
Гость
Re: Кроссплатформенность
«
Ответ #8 :
Июль 15, 2014, 18:44 »
Быстрее в разы - это уж не обессудьте, простой пример - сервер игровой на С++ поддерживает 15-25к пользователей. На Java предел 5к. Выше 5к - умирает к чертям
Например я могу выстрелить себе в ногу и намусорить
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Кроссплатформенность
«
Ответ #9 :
Июль 15, 2014, 19:06 »
Цитата: Bepec от Июль 15, 2014, 18:44
Быстрее в разы - это уж не обессудьте, простой пример - сервер игровой на С++ поддерживает 15-25к пользователей. На Java предел 5к. Выше 5к - умирает к чертям
Это не пример. Можно и на c++ написать такой сервер, который умрет и на 1000 клиентах, а можно на java написать такой, что и 25000 выдержит.
Не стоит надеяться, что если пишешь на плюсах, то код сам собой всегда будет быстрее, это заблуждение.
Цитата: Bepec от Июль 15, 2014, 18:44
Например я могу выстрелить себе в ногу и намусорить
На любом языке программирования можно выстрелить себе в ногу, в той или иной степени. Я не спец в яве, но там таких вариантов не меньше, чем в c++.
«
Последнее редактирование: Июль 15, 2014, 19:38 от Old
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Кроссплатформенность
«
Ответ #10 :
Июль 15, 2014, 20:20 »
Цитата: Bepec от Июль 15, 2014, 14:54
Кроссплатформенность - это ..
Это довольно широкое понятие которое можно трактовать по-разному
Цитата: Bepec от Июль 15, 2014, 14:54
Это не Java. Это C++ и потому он в разы быстрее и имеет больше возможностей благодаря как раз компиляции
Ну что Вы опять самозабвенно заливаете
Не надо, по скорости жаба "вполне", уступает немного, никаких разов нет.
Что касается "розовой мячты" нажать раз на бубочку и получить результат для всех платформ - ну так если сказано "плюсы", то о байт-коде речь не идет. Есть IDE компилирующие и под др платформу(ы), но мое мнение - не стоит оно того, "не родное"
Записан
SergeyVslnko
Гость
Re: Кроссплатформенность
«
Ответ #11 :
Июль 16, 2014, 11:09 »
Всем спасибо за участие!
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...