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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Статическая сборка под qt4 в студии  (Прочитано 3417 раз)
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'ки ?
Заранее спасибо
« Последнее редактирование: Февраль 14, 2012, 15:27 от mik8823 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Февраль 14, 2012, 15:38 »

статически надо собирать Qt самому из исходников, как это сделать - поиск по форуму подскажет.

приложение требует qt'шные dll'ки потому что сейчас Qt собрана динамически (QtSDK и другие установщики распространяют именно динамические библиотеки).
Записан

Изучением 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
mik8823
Гость
« Ответ #2 : Февраль 14, 2012, 23:46 »

kambala, большое спасибо за помощь.
Записан
mik8823
Гость
« Ответ #3 : Февраль 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
Подскажите что с этим и куда копать?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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