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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Компиляция и сборка  (Прочитано 5705 раз)
Biowolf
Гость
« : Январь 23, 2014, 03:46 »

Имею некоторый опыт в майкрософтской визуал студии. Решил попробовать Qt, восновном ради того что бы получить программу работающую и из-под линукса.
Написал простенькую програмку на Qt. Скомпилировал. Из самого Qt она работала успешно. Но когда я пытаюсь запустить .exe файл из проводника возникает ошибка - не найдено libgcc_s_dw2-1.dll
Как получить работающий .exe ? Желательно без лишних .dll

Как получить компилированый файл для Линукса? Где обещанная кроссплатформенность?
Подскажите пожалуйста!
Записан
carrygun
Гость
« Ответ #1 : Январь 23, 2014, 04:21 »

Как получить работающий .exe ? Желательно без лишних .dll
Он уже рабочий. Насчет "лишних" библиотек - ищите  читаете про статическую сборку Qt.

Как получить компилированый файл для Линукса? Где обещанная кроссплатформенность?
Собрать свои исходники в линупсе, либо прочитать про кросскомпиляцию. Кроссплатформенность в Qt предполагает компилируемость кода в поддерживаемых ОС. Если вам надо что-то работающее везде и всегда, то подойдет Java.
Записан
Biowolf
Гость
« Ответ #2 : Январь 23, 2014, 22:01 »

В мелкософтской студии получался .exe весом 10 Кб и всё.
В Qt запускаемый файл получается в 3 раза больше и ещё надо приложить 3 Мб каких-то библиотек, чтобы оно вообще запускалось.
Почему так сложно?

Насчёт кроссплатформенности я ожидал что можно будет нажать кнопку компилировать и у меня сразу появятся программы под популярные оси, разложенные по разным папочкам. Но оказывается и тут сложности непомерные!
Почему так сложно?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Январь 23, 2014, 22:33 »

1. цена легкой кросс-платформенности
2. дело в чистом нативном коде. одна ОС (равно как и отдельно взятый компилятор) сама по себе ничего не знает о других ОС. хочешь собирать бинарники для разных ОС из одной — ставь кросс-компилятор. иначе иди на Java.
Записан

Изучением 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
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #4 : Январь 23, 2014, 22:37 »

В мелкософтской студии получался .exe весом 10 Кб и всё.
Ага, попробуйте его запустить на компьютере, где не стоит студия или Visual C++ Redistributable Package.
Но в целом, да, в Qt размер дистрибутива простенькой программы получается большим (если позаморачиваться со статической сборкой, отключением ненужного функционала, upx'ом пройтись и т.п.) или просто неприлично огромным (если этого не делать).

Почему так сложно?
Потому что жизнь - боль.  Злой
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Январь 23, 2014, 22:41 »

Насчёт кроссплатформенности я ожидал что можно будет нажать кнопку компилировать и у меня сразу появятся программы под популярные оси, разложенные по разным папочкам. Но оказывается и тут сложности непомерные!
Почему так сложно?

Вон из профессии! Ожидал он.
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #6 : Январь 23, 2014, 22:53 »

Если вам надо что-то работающее везде и всегда, то подойдет Java.
хочешь собирать бинарники для разных ОС из одной — ставь кросс-компилятор. иначе иди на Java.
Не знаю, может мне очень не везло на разработчиков, но те гуёвые Java-программы с которыми я сталкивался оставили у меня привкус жутко бесящей тормознутости (ну и сильно ненативный вид я тоже отношу к минусам).
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Январь 23, 2014, 23:24 »

а никто и не говорил, что джава — оптимальный вариант Улыбающийся легка в развертывании/запуске на любой платформе, да (ТС хочет именно этого насколько я понял), но у нее есть и ряд своих минусов. для Qt-программы достаточно подложить несколько длл и всё будет работать (если сборка нестатическая), с джавой же так не получится.
Записан

Изучением 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
carrygun
Гость
« Ответ #8 : Январь 24, 2014, 04:36 »

В жабе проблемы с гуем еще те, но я чаще всего встречал другие решения. Хотя был один суровый гуй на OpenGL в яве, медленно, но работало ведь!
Записан
Alexu007
Гость
« Ответ #9 : Январь 24, 2014, 08:56 »

Мне тож сперва как то не понравилось дополнительные DLL, и получается размер больше, чем даже в том же билдере было. Но!. Ексешники Qt как минимум вдвое быстрее билдера работают (что очень приятно удивило). А дополнительные DLL ваще фигня, я их сразу в папку скопировал, и все свои Qt-шные ексешники туда сую.

Если захочешь свою гениальную EXE кому-нить впаритьподарить - давай её сразу в папке с библиотеками (их всего три). И никаких проблем.

В наш век терабайтов и терагерц стоит ли париться из-за лишних трёх файликов и десятка мегабайт?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Январь 24, 2014, 12:34 »

давай её сразу в папке с библиотеками (их всего три)
шутник Веселый количество длл зависит от количества используемых модулей Qt в программе.
Записан

Изучением 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
carrygun
Гость
« Ответ #11 : Январь 24, 2014, 12:42 »

давай её сразу в папке с библиотеками (их всего три)
шутник Веселый количество длл зависит от количества используемых модулей Qt в программе.
А то и больше. К примеру если захотеть послушать mp3, то помимо Qt5Multimedia программе трубется Qt5MultimediaWidgets, который тянет за собой Qt5OpenGL  Улыбающийся
Записан
NickSin
Гость
« Ответ #12 : Январь 27, 2014, 11:08 »

давай её сразу в папке с библиотеками (их всего три)
шутник Веселый количество длл зависит от количества используемых модулей Qt в программе.
А то и больше. К примеру если захотеть послушать mp3, то помимо Qt5Multimedia программе трубется Qt5MultimediaWidgets, который тянет за собой Qt5OpenGL  Улыбающийся

Жизнь - это правда боль)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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