Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT 4] Проблема с запуском *exe после компиляции


Автор: Moby 20.1.2009, 11:59
Написал прогу в Visual Studio. В папке Debug есть ехе'шник, жму на него а говорит "Приложению не удалось запуститься, поскольку QtCore4d.dll не был найден."

Я вот сделал так, до этого у меня примеры не запускались и подсказали решение:

Мой компутер -> свойства -> вкладка Дополнительно - > кнопка Переменные среды -> раздел Системные переменные -> переменная Path -> изменить и всталяеш туда пути "C:\QT\4.4.3\;C:\QT\4.4.3\bin\;"

А без этого никак не обойтись? 

Неужели QT должно стоять и на том ПК, на котором собираются запускать программу, и так же в Path должен быть указан "C:\QT\4.4.3\;C:\QT\4.4.3\bin\;"?

Автор: Fazil6 20.1.2009, 12:29
Цитата(Moby @  20.1.2009,  11:59 Найти цитируемый пост)
Неужели QT должно стоять и на том ПК, на котором собираются запускать программу, и так же в Path должен быть указан "C:\QT\4.4.3\;C:\QT\4.4.3\bin\;"? 

не должен. Просто dll нужна. Можешь просто рядом с экзешником положить

Автор: betman_ru 20.1.2009, 13:02
Если собрать статически, то ничего ненадо ... Экзешник, в размере потолстее. Поиши инфу про статическую сборку в QT, либо в гугле, либо на оф.сайте...

Автор: anatox91 20.1.2009, 13:34
лучше всего просто положить все нужные длл-ки в папку с экзешником. Собирать статически во-первых очень долго, во-вторых дофига места на харде сожрет

Автор: ecspertiza 20.1.2009, 16:28
Лично я за статическую зборку, ибо qt-шные dll-ки весят около 100 метров, а последний проект который я написал довольно большой, под статической сборкой release версия весит около 12 метров. 

Автор: W4FhLF 20.1.2009, 16:51
А зачем таскать все dll? Можно взять только необходимы и сжать их upx(например QtCore4.dll + QtGui4.dll сжатые весят 3.5 мегабайта вместо 9).

Автор: pan2004 20.1.2009, 17:20
Цитата(ecspertiza @  20.1.2009,  16:28 Найти цитируемый пост)
Лично я за статическую зборку, ибо qt-шные dll-ки весят около 100 метров,

ну 100 метров это ты загнул...
Или ты всегда debug версией пользуешься?
Да и автору стоит посоветовать скомпилить в release, на порядок меньше тащить за собой придется

Автор: ecspertiza 20.1.2009, 17:30
Цитата(pan2004 @  20.1.2009,  17:20 Найти цитируемый пост)

ну 100 метров это ты загнул...


Пользуюсь QT 4.4.3 QtGuid4.dll весит 63 метра + QtCored4.dll 17 метров и того 80 метров, а ели ещё и с БД работаем то это уже ... 

Автор: pan2004 20.1.2009, 18:07
Цитата(ecspertiza @  20.1.2009,  17:30 Найти цитируемый пост)
Пользуюсь QT 4.4.3 QtGuid4.dll 

ну конечно же это дебаг версии, ты на те которые без буквы "d" смотри...

Автор: betman_ru 20.1.2009, 18:33
Правильно! Используй релиз версию, а не дебаг. И ещё ... при разработке на VS размер значительно меньше, чем у mingv.

Автор: SABROG 20.1.2009, 18:53
Цитата(betman_ru @ 20.1.2009,  18:33)
Правильно! Используй релиз версию, а не дебаг. И ещё ... при разработке на VS размер значительно меньше, чем у mingv.

Ну меньше 7Мб ты не получишь (без UPX) даже на простейшем "Hello, World". Приходится тянуть все классы за раз. Qt рассчитана на то, чтобы библиотеки устанавливались как Java Runtime Environment в системную директорию и эти dll должны использовать все программы на Qt. Так и сделано в Linux. Еще стоит задуматься, что при статической линковки в проектах, которые используют плагины код Qt будет включен 2 раза в каждый модуль. А это потеря оперативы и общее увеличение размера дистрибутива.

Автор: Moby 20.1.2009, 19:44
Рад, что хоть эта моя тема оказалась серьёзнее чем "А как нарисовать..."! smile

Спасибо за ответы. Про статистическую сборку не знал, учту.

Но решил на данный момент сделать проще, как и советовали.

Сделал релиз версию и кинул две нужные dll'ки. Всё вместе весит 10-ь метров, я бы сказал для нынешних времён "детский" размер. 

И все работает. Да же на Vista'е запустилось. smile

Всем спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)