Название: Статическая сборка под qt4 в студии
Отправлено: mik8823 от Февраль 14, 2012, 14:32
Здравствуйте. В наследство достался проект с которым возникла проблема. Проект под qt4 собран в vs2008, состоит из десятка библиотек и нескольких приложений В debag'е все собирается и работает нормально. Одно из приложений требуется собрать в release, и тут у меня возникли проблемы: 1) приложение запускается из-под студии, и даже работает, но падает при return'е из ничем не примечательной функции (в debag'е работает нормально) 2) планировалось сделать статическую сборку, но при запуске экзешика не из студии- требует QtSql.dll, QtCore/dll и QtGui.dll 3) если в папку с экзешником кинуть указанные dll'ки- приложение запускается, но падает с предложением отправить отчёт. 4) созданный экзешник явно меньше по размеру чем нужно (старая-бородатая версия весила 8М- сейчас собирается 2.3М) В Project Property->C/C++ -> Code generation->runtime library - указано MT в Linker->general->libarary directories - '$(QTDIR)\lib' и '../lib' - это библиотеки из моего проекта версия qt -4.7, ставил QtSDK и add-in для студии. Собственно сам вопрос: как сделать статическую сборку проекта, и почему приложение требует qt'шные dll'ки ? Заранее спасибо
Название: Re: Статическая сборка под qt4 в студии
Отправлено: kambala от Февраль 14, 2012, 15:38
статически надо собирать Qt самому из исходников, как это сделать - поиск по форуму подскажет.
приложение требует qt'шные dll'ки потому что сейчас Qt собрана динамически (QtSDK и другие установщики распространяют именно динамические библиотеки).
Название: Re: Статическая сборка под qt4 в студии
Отправлено: mik8823 от Февраль 14, 2012, 23:46
kambala, большое спасибо за помощь.
Название: Re: Статическая сборка под qt4 в студии
Отправлено: mik8823 от Февраль 16, 2012, 18:52
Пересобрал qt. В Debug'е все всё собирается и запускается. При попытке собрать в релизе выдаёт: 4>Linking... 4>pugixml.lib(pugixml.obj) : MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance 4> Creating library ../bin/Projx6/Release\Projx6.lib and object ../bin/Projx6/Release\Projx6.exp 4>QtCore.lib(qthread_win.obj) : error LNK2001: unresolved external symbol __imp___endthreadex 4>QtCore.lib(qthread_win.obj) : error LNK2001: unresolved external symbol __imp___beginthreadex 4>QtCore.lib(qthread_win.obj) : error LNK2001: unresolved external symbol __imp___beginthread 4>QtCore.lib(qglobal.obj) : error LNK2001: unresolved external symbol __imp___putenv_s 4>QtCore.lib(qdatetime.obj) : error LNK2001: unresolved external symbol __imp___mktime64 4>QtCore.lib(qfsfileengine.obj) : error LNK2001: unresolved external symbol __imp___fstat64 4>QtCore.lib(qfsfileengine.obj) : error LNK2001: unresolved external symbol __imp___stat64 4>QtCore.lib(qtemporaryfile.obj) : error LNK2001: unresolved external symbol __imp___stat64 4>QtCore.lib(qtemporaryfile.obj) : error LNK2001: unresolved external symbol __imp___mkdir 4>QtCore.lib(qtemporaryfile.obj) : error LNK2001: unresolved external symbol __imp___getpid 4>QtCore.lib(qvsnprintf.obj) : error LNK2001: unresolved external symbol __imp__vsnprintf_s 4>QtCore.lib(qfsfileengine_win.obj) : error LNK2001: unresolved external symbol __imp___filelengthi64 4>QtCore.lib(qfsfileengine_win.obj) : error LNK2001: unresolved external symbol __imp___wgetdcwd 4>QtCore.lib(qfsfileengine_win.obj) : error LNK2001: unresolved external symbol __imp___waccess 4>QtCore.lib(qfsfileengine_win.obj) : error LNK2001: unresolved external symbol __imp___wchmod 4>QtGui.lib(qcolor_p.obj) : error LNK2001: unresolved external symbol __imp__bsearch 4>QtGui.lib(qxpmhandler.obj) : error LNK2001: unresolved external symbol __imp__bsearch 4>QtGui.lib(tif_dirinfo.obj) : error LNK2001: unresolved external symbol __imp__bsearch 4>QtGui.lib(qvalidator.obj) : error LNK2001: unresolved external symbol __imp___HUGE 4>QtGui.lib(qwindowsxpstyle.obj) : error LNK2001: unresolved external symbol __imp__wcsrchr 4>QtGui.lib(pngwrite.obj) : error LNK2001: unresolved external symbol __imp__longjmp 4>QtGui.lib(qjpeghandler.obj) : error LNK2001: unresolved external symbol __imp__longjmp 4>QtGui.lib(qpnghandler.obj) : error LNK2001: unresolved external symbol __imp__longjmp 4>QtGui.lib(qgrayraster.obj) : error LNK2001: unresolved external symbol __imp__longjmp 4>QtGui.lib(pngread.obj) : error LNK2001: unresolved external symbol __imp__longjmp 4>QtGui.lib(png.obj) : error LNK2001: unresolved external symbol __imp__modf 4>QtGui.lib(png.obj) : error LNK2001: unresolved external symbol __imp__frexp 4>QtGui.lib(tif_dirinfo.obj) : error LNK2001: unresolved external symbol __imp__lfind 4>OLDNAMES.lib(lfind.obi) : error LNK2001: unresolved external symbol __imp__lfind 4>OLDNAMES.lib(lfind.obi) : error LNK2001: unresolved external symbol __imp___lfind 4>QtCore.lib(qsimd.obj) : error LNK2001: unresolved external symbol __imp__puts Подскажите что с этим и куда копать?
|