Russian Qt Forum

Qt => Вопросы новичков => Тема начата: demaker от Апрель 09, 2014, 15:46



Название: Запуск ехе-файла
Отправлено: demaker от Апрель 09, 2014, 15:46
Подскажите пожалуйста.
Собрал проект взял ехе-файл, перетащил на другую машину.
Приложение потребовало файл QtGui4d.dll(файл весит 155 Мб).
Можно как-нибудь сделать так, чтобы приложение работало без QtGui4d.dll???


Название: Re: Запуск ехе-файла
Отправлено: Bepec от Апрель 09, 2014, 15:59
О май гад :D
Во 1 не используйте дебажные версии. На другую машину кидайте релизную.
Собственно это и ответ - в дебаге содержится много отладочной информации. Потому такой размер.

Релизные dll весят около 9 мб :)


Название: Re: Запуск ехе-файла
Отправлено: OKTA от Апрель 09, 2014, 16:11
А во 2?  ;D


Название: Re: Запуск ехе-файла
Отправлено: demaker от Апрель 09, 2014, 16:14
Да нет кидаю релизную и требует  ???


Название: Re: Запуск ехе-файла
Отправлено: Bepec от Апрель 09, 2014, 16:19
Мдамс)
2) Вы собрали дебажную версию программы. К ней прилинкованы дебажные dll. Ты собери релизную. И будет тебе счастье с релизными dll


Название: Re: Запуск ехе-файла
Отправлено: gil9red от Апрель 09, 2014, 16:49
Да нет кидаю релизную и требует  ???

Релизная не потребовала бы dll'ки с суффиксами d (т.е. debug) ( QtGui4d.dll ) =)
Вот когда будет требовать QtGui4.dll, тогда это точно релизная )) Да и как писалось выше, дэбажные всегда занимают больше места - и ехе, и dll'ки :)


Название: Re: Запуск ехе-файла
Отправлено: lesav от Апрель 09, 2014, 19:33
Это все баги в QtCreator-е (http://www.prog.org.ru/index.php?topic=26164.msg187331#msg187331)


Название: Re: Запуск ехе-файла
Отправлено: demaker от Апрель 10, 2014, 14:55
Код:
"#############################################################################
# Makefile for building: MyMTLYNX
# Generated by qmake (2.01a) (Qt 4.7.3) on: ?? 10. ??? 15:51:24 2014
# Project:  ..\input\MyMTLYNX.pro
# Template: app
# Command: d:\qtsdk\desktop\qt\4.7.3\mingw\bin\qmake.exe -spec d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\win32-g++ -o Makefile ..\input\MyMTLYNX.pro
#############################################################################

first: debug
install: debug-install
uninstall: debug-uninstall
MAKEFILE      = Makefile
QMAKE         = d:\qtsdk\desktop\qt\4.7.3\mingw\bin\qmake.exe
DEL_FILE      = del
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
COPY          = copy /y
COPY_FILE     = $(COPY)
COPY_DIR      = xcopy /s /q /y /i
INSTALL_FILE  = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR   = $(COPY_DIR)
DEL_FILE      = del
SYMLINK       =
DEL_DIR       = rmdir
MOVE          = move
CHK_DIR_EXISTS= if not exist
MKDIR         = mkdir
SUBTARGETS    =  \
debug \
release

debug: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_default: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug
debug-make_first: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug first
debug-all: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug all
debug-clean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug clean
debug-distclean: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug distclean
debug-install: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug install
debug-uninstall: $(MAKEFILE).Debug FORCE
$(MAKE) -f $(MAKEFILE).Debug uninstall
release: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_default: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release
release-make_first: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release first
release-all: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release all
release-clean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release clean
release-distclean: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release distclean
release-install: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release install
release-uninstall: $(MAKEFILE).Release FORCE
$(MAKE) -f $(MAKEFILE).Release uninstall

Makefile: ../input/MyMTLYNX.pro  d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/win32-g++/qmake.conf d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/qconfig.pri \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/modules/qt_webkit_version.pri \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/qt_functions.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/qt_config.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/exclusive_builds.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/default_pre.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/default_pre.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/debug.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/debug_and_release.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/default_post.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/default_post.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/rtti.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/exceptions.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/stl.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/shared.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/warn_on.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/qt.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/thread.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/moc.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/win32/windows.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/resources.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/uic.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/yacc.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/mkspecs/features/lex.prf \
d:/QtSDK/Desktop/Qt/4.7.3/min
gw/mkspecs/features/include_source_dir.prf \
d:/QtSDK/Desktop/Qt/4.7.3/mingw/lib/qtmaind.prl
$(QMAKE) -spec d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\win32-g++ -o Makefile ..\input\MyMTLYNX.pro
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\qconfig.pri:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\modules\qt_webkit_version.pri:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\qt_functions.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\qt_config.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\exclusive_builds.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\default_pre.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\default_pre.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\debug.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\debug_and_release.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\default_post.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\default_post.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\rtti.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\exceptions.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\stl.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\shared.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\warn_on.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\qt.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\thread.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\moc.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\win32\windows.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\resources.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\uic.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\yacc.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\lex.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\features\include_source_dir.prf:
d:\QtSDK\Desktop\Qt\4.7.3\mingw\lib\qtmaind.prl:
qmake: qmake_all FORCE
@$(QMAKE) -spec d:\QtSDK\Desktop\Qt\4.7.3\mingw\mkspecs\win32-g++ -o Makefile ..\input\MyMTLYNX.pro

qmake_all: FORCE

make_default: debug-make_default release-make_default FORCE
make_first: debug-make_first release-make_first FORCE
all: debug-all release-all FORCE
clean: debug-clean release-clean FORCE
distclean: debug-distclean release-distclean FORCE
-$(DEL_FILE) Makefile

check: first

debug-mocclean: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocclean
release-mocclean: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocclean
mocclean: debug-mocclean release-mocclean

debug-mocables: $(MAKEFILE).Debug
$(MAKE) -f $(MAKEFILE).Debug mocables
release-mocables: $(MAKEFILE).Release
$(MAKE) -f $(MAKEFILE).Release mocables
mocables: debug-mocables release-mocables
FORCE:

$(MAKEFILE).Debug: Makefile
$(MAKEFILE).Release: Makefile

А что означает, выше приведенный текст в консоле, при запуске приложения?


Название: Re: Запуск ехе-файла
Отправлено: QPeter от Апрель 12, 2014, 22:31
А если просит Qt5Core.dll что делать?)


Название: Re: Запуск ехе-файла
Отправлено: Vamireh от Апрель 12, 2014, 22:40
А если просит Qt5Core.dll что делать?)

Один из следующих вариантов:
1) Прописать в переменную PATH путь до папки bin (там где эта Qt5Core.dll лежит)
2) Положить ее в папку с екзешником
3) Пересобрать Qt с ключом -static и забыть про зависимости от dll


Название: Re: Запуск ехе-файла
Отправлено: QPeter от Апрель 12, 2014, 23:25
Ну когда прописываешь PATH выдает что отсутствует libgcc_s_dw2-1.dll

Если положить её в файл с экзешником он будет просить ещё порядка 20 других dll файлов и в итоге всё равно выдаст какую то ошибку. Делал так, не помню уже что он писал, но проект был сломан и потом не собирался даже их Creator(a).

А ключ static- это как?)
::)


Название: Re: Запуск ехе-файла
Отправлено: gil9red от Апрель 13, 2014, 02:49
Ну когда прописываешь PATH выдает что отсутствует libgcc_s_dw2-1.dll

Прописать туда же путь к папке с компилятором (у меня это D:\MinGW\bin)


Название: Re: Запуск ехе-файла
Отправлено: QPeter от Апрель 14, 2014, 01:34
Цитировать
Прописать туда же путь к папке с компилятором (у меня это D:\MinGW\bin)
Закинул и как то не помогло.(
Вообще желателен такой способ при котором приложение будет запускаться и на других ПК.)


Название: Re: Запуск ехе-файла
Отправлено: OKTA от Апрель 14, 2014, 09:54
Запускаешь и кидаешь в папочку с exe все файлы, которые он попросит. А попросит он только то, что ты использовал в проекте - ничего лишнего.
Ну или как уже посоветовали, собрать Qt статически, чтобы все библиотеки зашивались в exe-файл, а как это сделать, поищите в поиске, эту тему мусолили 100500 раз уже.


Название: Re: Запуск ехе-файла
Отправлено: Old от Апрель 14, 2014, 09:56
Запускаешь и кидаешь в папочку с exe все файлы, которые он попросит. А попросит он только то, что ты использовал в проекте - ничего лишнего.
Ну конечно, а плагины? :)