Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Anton от Июль 03, 2005, 15:43



Название: Полный релиз программы на QT
Отправлено: Anton от Июль 03, 2005, 15:43
При написании программы на QT  в среде VS2003 возникла проблема: как
собрать программу так, чтобы на другом компьютере не спрашивалось dll-ек никаких. При включении runtime library single-threaded линкер выдает ошибку unresolved symbol error


Название: Полный релиз программы на QT
Отправлено: Zigmar от Июль 03, 2005, 21:04
"runtime library single-threaded" к делу отношения не имеет. Это только версия стандартной библиотеке с которой линковаться. Лучше всего выбирать (debug) multithreaded dll.
А тебе нужно забилдить qt как статичную библиотеку, и линковаться с ней.


Название: Полный релиз программы на QT
Отправлено: Anton от Июль 03, 2005, 21:57
При установки этой опции во время инсталляции qt выводится предупреждение о том что в случае компилирования  в статической библиотеке теряется функциональность (плагины и пр.) Что именно теряется? Что изменяется?


Название: Полный релиз программы на QT
Отправлено: Admin от Июль 04, 2005, 10:09
отсутсвуют плагины
дизайнер становится неполноценным

так что лучше статтическую либу собрать и рядом положить на всякий случай


Название: Полный релиз программы на QT
Отправлено: Ace-X от Июль 04, 2005, 11:22
Есть еще такой хороший вариант как Thinstall (http://www.thinstall.com), MoleBox (http://www.molebox.com) и другие похожие программки, которые пакуют основной exe-шник со всеми необходимыми файлами (включая dll) вместе.


Название: Полный релиз программы на QT
Отправлено: Night_Light_8 от Январь 02, 2006, 23:35
Цитировать
собрать программу так, чтобы на другом компьютере не спрашивалось dll-ек никаких.


Где по этому вопросу подробную инфу можно найти. Можете тыкнуть место в документации. QT 4.0.1


Название: Полный релиз программы на QT
Отправлено: Namelles One от Январь 04, 2006, 21:31
Я немного не понимаю...
А что за DLL файл тогда создается при сборке проги с параметром libdll ?


Название: Полный релиз программы на QT
Отправлено: Night_Light_8 от Январь 04, 2006, 23:02
Цитировать
А что за DLL файл тогда создается при сборке проги с параметром libdll


Мне это как раз и нужно. Что и где писать чтобы получить нужное при сборке. Где подробную инфу по этому вопросу можно найти?


Название: Полный релиз программы на QT
Отправлено: joktar от Январь 05, 2006, 03:20
Цитата: "Ace-X"
Есть еще такой хороший вариант как Thinstall (http://www.thinstall.com), MoleBox (http://www.molebox.com) и другие похожие программки, которые пакуют основной exe-шник со всеми необходимыми файлами (включая dll) вместе.

где брать можно поглдеть на Thinstall вживую не подскажеш?
(MoleBox - уже нашел)


Название: Полный релиз программы на QT
Отправлено: Ace-X от Январь 05, 2006, 12:34
Цитата: "joktar"

где брать можно поглдеть на Thinstall вживую не подскажеш?
(MoleBox - уже нашел)


На Ru-Board. Только читай внимательно последний пост в ветке про Thinstall. Я бы остановился на MoleBox.


Название: Полный релиз программы на QT
Отправлено: Namelles One от Январь 08, 2006, 19:10
Вообще-то лучший считается Nullsoft installer, так как Trolltech его сама юзает...
Только там вручную надо dll вместе собрат,ь но это - уже не сложно...


Название: Полный релиз программы на QT
Отправлено: Admin от Январь 08, 2006, 19:25
Я тоже Nullsoft installer пользую!


Название: Полный релиз программы на QT
Отправлено: Mikhail от Январь 11, 2006, 21:41
Не надо собирать DLL вместе и плясать с бубном. Необходимо собрать свою программу статически и без debug.
Для этого скомпилируй Qt с опциями static и release.
А Nullsoft installer очень приличная вещь.


Название: Полный релиз программы на QT
Отправлено: Night_Light_8 от Январь 11, 2006, 21:52
всё таки где подробную инфу то найти можно по этому делу? :)


Название: Полный релиз программы на QT
Отправлено: Mikhail от Январь 12, 2006, 18:24
Читай внимательно документацию. У Троллей ее много, написана подробно и доходчиво.
Желательно иметь на компьютере различные компоновки Qt.
1. Для разработки shared + debug
2. Для окончательной сборки static + release.
Могут быть и другие варианты.
Собрать их легко, пользуясь configure, который покажет все свои опции по -h, а их у него много, на все случаи жизни.
Успехов.
 :D


Название: Полный релиз программы на QT
Отправлено: joktar от Январь 12, 2006, 18:43
C Nullsoft Installer'ом все просто:
качается дистрибутив, из него выдирается каталог Stubs и makensis(w):
затем делается конфиг наподобие:
(конфиг сделан для создания инсталлятор debug-версии написанной на qt4 программы, кое что оторвано)
;NSIS X3D R2 Installer script                                  
;Also Template script for X3D Toolkit-based programs
;(c) Dmitriy Kazimirow 2005
;TODO:Add contact URL,etc to Add/Remove programs
;TODO:Make Qt-based configuration reader for settings made via installer
;Planned solution:use QSettings,which could read HKML <Developer> \ <Program>
;--------------------------------

;Slow but maximal compression
;4,479 Kb install size
;SetCompressor /SOLID lzma

;DEFINES += X3D_VER=\"0.21\" OGIS_T_VER=\"0.60\"
; The name of the installer
Name "X3D Alpha 3(X3D Toolkit R2 v0.30,Codename Talia)"

; The file to write
OutFile "x3dr2_v030_talia_app_installer.exe"

; The default installation directory
InstallDir "$PROGRAMFILES\Dmitriy Kazimirow\X3D Toolkit\X3DR2"

; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\Dmitriy Kazimirow\X3D Toolkit\X3DR2" "Install_Dir"

BrandingText "X3D Toolkit Release 2(v0.30 Codename Talia) - based app"
Caption "Установка приложения на базе X3D R2 v0.30"
InstallButtonText "Установка"
XPStyle on                    

;--------------------------------

; Pages

Page components
Page directory
Page instfiles

UninstPage uninstConfirm
UninstPage instfiles

;--------------------------------

; The stuff to install
; Сама программа PCT
Section "Core"
  SetOutPath $INSTDIR
  File ..\debug\x3dr2_msvc_dbg.exe  
  File ..\docs\license.txt
  ; Write the installation path into the registry
  WriteRegStr HKLM "Dmitriy Kazimirow\X3D Toolkit\X3DR2" "Install_Dir" "$INSTDIR"
  ; Куда установлен X3DR2 Toolkit
  WriteRegStr HKCU "Software\Dmitriy Kazimirow\OrganizationDefaults" "X3DR2_InstallDir" "$INSTDIR"  
  ; Write the uninstall keys for Windows
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DKZM_X3DR2" "DisplayName" "X3D R2 Based-app"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DKZM_X3DR2" "UninstallString" '"$INSTDIR\uninstall.exe"'
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DKZM_X3DR2" "NoModify" 1
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DKZM_X3DR2" "NoRepair" 1
  WriteUninstaller "uninstall.exe"
;
  WriteRegStr HKCU "Software\Dmitriy Kazimirow\X3D R2-based app\GlobalConfiguration" "Username" "Дмитрий Казимиров"
  WriteRegStr HKCU "Software\Dmitriy Kazimirow\X3D R2-based app\GlobalConfiguration" "Organization" "Персональная лицензия разработчика"
  WriteRegStr HKCU "Software\Dmitriy Kazimirow\X3D R2-based app\GlobalConfiguration" "LicenseKey" "4V5B-NM4B-N364-12NM-485N-B5NQ-46NM-982N-1BN8-BN94"

  WriteRegStr HKLM "Software\Dmitriy Kazimirow\X3D Toolkit\Licensing" "Customer" "Дмитрий Казимиров"



;Better use something like IMS here,this is versions!
;Here Versions are:
;1-This version(X3D_VER=0.20 OGIS_T_VER=0.45)
;2-
;3-PTC,Beta1,Codename Xanth,X3D_VER=0.21 OGIS_T_VER=0.60,20.10.2005
;4-PTC,Beta2,Codename Dahak,X3D_VER=0.21 OGIS_T_VER=0.60,14.10.2005
;Отличие-ставится нормально
;5-X3D R2,v0.30,X3D_VER=0.30,19.11.2005,шаблон для X3D R2
;6-PTC,Beta3,Codename Asturia,X3D_VER=0.21 OGIS_T_VER=0.60,19.11.2005
;TODO:разделить версии X3D Toolkit и самих программ
;Можно будет сделать когда наконец то будет решено что куда входит
;И сделан X3D Toolkit SDK
  WriteRegDWORD HKLM "Software\Dmitriy Kazimirow\X3D Toolkit" "InstalledVersion" 5





SectionEnd

;Both Qt/QSA and X3D Toolkit
;Not ALL of them are needed for PCT but install anyway
;SideNote:Mingw version of OpenNURBS does not links dynamically
Section "Библиотеки поддержки"
  SetOutPath $INSTDIR
  File ..\redist\msvcp71d.dll
  File ..\redist\msvcr71d.dll
  File ..\redist\msvcp71.dll
  File ..\redist\msvcr71.dll
  File ..\redist\QtCored4.dll
  File ..\redist\QtNetworkd4.dll
  File ..\redist\qsad1.dll
  File ..\redist\QtGuid4.dll
  File ..\redist\QtOpenGLd4.dll
  File ..\redist\Qt3Supportd4.dll
  File ..\redist\QtSqld4.dll
  File ..\redist\QtXmld4.dll
  File ..\debug\opennurbs_d.dll
SectionEnd
Section "Драйвера СУБД"
  SetOutPath $INSTDIR\plugins\sqldrivers
  File ..\redist\plugins\sqldrivers\qsqlited.dll
  File ..\redist\plugins\sqldrivers\qsqlmysqld.dll
  File ..\redist\plugins\sqldrivers\qsqlodbcd.dll
  File ..\redist\plugins\sqldrivers\qsqlpsqld.dll
SectionEnd
Section "Графические форматы"
  SetOutPath $INSTDIR\plugins\imageformats
  File ..\redist\plugins\imageformats\qjpegd1.dll
SectionEnd
Section "Accessibility"
  SetOutPath $INSTDIR\plugins\accessible
  File ..\redist\plugins\accessible\qtcompatwidgetsd1.dll
  File ..\redist\plugins\accessible\qtwidgetsd1.dll
SectionEnd
; Optional section (can be disabled by the user)
Section "Ярлыки главного меню"
; НЕ писать имя разработчика не очень хорошо но не надо слишком явно провоцировать
  CreateDirectory "$SMPROGRAMS\X3D R2(X3D v0.30,Codename Talia)"
  CreateShortCut "$SMPROGRAMS\X3D R2\Удаление X3D R2-based application(X3D v0.30,Codename Talia).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
  CreateShortCut "$SMPROGRAMS\X3D R2\X3D R2-based app(X3D v0.30,Codename Talia.lnk" "$INSTDIR\x3dr2_msvc_dbg.exe" "" "$INSTDIR\ogis_t_msvc_dbg.exe" 0
  CreateShortCut "$SMPROGRAMS\X3D R2\Лицензия на X3D R2-based app(X3D v0.30,Codename Talia.lnk" "$INSTDIR\license.txt" "" "$INSTDIR\license.txt" 0
 
SectionEnd

; Uninstaller

Section "Uninstall"
 
  ; Remove registry keys
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DKZM_X3DR2"
  DeleteRegKey HKLM "Dmitriy Kazimirow\X3D Toolkit\X3DR2"

  ; Remove plugins and their dirs
  Delete $INSTDIR\plugins\accessible\qtcompatwidgetsd1.dll
  Delete $INSTDIR\plugins\accessible\qtwidgetsd1.dll
  RMDir  $INSTDIR\\plugins\\accessible
  Delete $INSTDIR\plugins\imageformats\qjpegd1.dll
  RMDir  $INSTDIR\\plugins\\imageformats
  Delete $INSTDIR\plugins\sqldrivers\qsqlplsqld.dll
  Delete $INSTDIR\plugins\sqldrivers\qsqlmysqld.dll
  Delete $INSTDIR\plugins\sqldrivers\qsqlsqlited.dll
  Delete $INSTDIR\plugins\sqldrivers\qsqlodbcd.dll
  RMDir  $INSTDIR\\plugins\\sqldrivers
  RMDir  $INSTDIR\\plugins

  ; Remove support libs
  Delete $INSTDIR\qsad1.dll
  Delete $INSTDIR\Qt3Supportd4.dll
  Delete $INSTDIR\QtOpenGLd4.dll
  Delete $INSTDIR\QtNetworkd4.dll
  Delete $INSTDIR\QtNetwork4.dll
  Delete $INSTDIR\QtSqld4.dll
  Delete $INSTDIR\QtGuid4.dll
  Delete $INSTDIR\QtXmld4.dll
  Delete $INSTDIR\QtCored4.dll
  Delete $INSTDIR\QtCore4.dll
  Delete $INSTDIR\opennurbs_d.dll
  Delete $INSTDIR\msvcp71d.dll
  Delete $INSTDIR\msvcr71d.dll
  Delete $INSTDIR\msvcp71.dll
  Delete $INSTDIR\msvcr71.dll
 


  ; Remove files and uninstaller
  Delete $INSTDIR\x3dr2_msvc_dbg.exe
  Delete $INSTDIR\license.txt
  Delete $INSTDIR\uninstall.exe

  ; Remove shortcuts, if any
  Delete "$SMPROGRAMS\X3D R2(X3D v0.30,Codename Talia)\*.*"

  ; Remove directories used
  RMDir "$SMPROGRAMS\3D R2(X3D v0.30,Codename Talia)"
  RMDir "$INSTDIR"

SectionEnd


и компилируется:makensis(w) file.nsi, после чего имеем маленький красивый инсталлер.


Название: Полный релиз программы на QT
Отправлено: npopok от Май 24, 2006, 16:35
Ну qtшные дллки мне подсоединить удалось, но теперь он ругается на отсутствие msvcr71.dll Как с этим быть?


Название: Полный релиз программы на QT
Отправлено: Grigory от Июнь 01, 2006, 09:13
пользоваться линуксом :)


Название: Полный релиз программы на QT
Отправлено: Admin от Июнь 01, 2006, 10:37
таскать ее с собой!
она у тебя где то в C:\WINDOWS\SYSTEM32\


Название: Полный релиз программы на QT
Отправлено: ElderOrb от Июнь 01, 2006, 10:46
Почему бы не сделать так как это описано здесь: http://qtnode.net/wiki/Qt4_with_Visual_Studio_and_static_C_runtime. После чего полученный экзешник сжать upx-ом. Получится около 1.7 мег экзешничек, зато без депендансов ваще.


Название: Полный релиз программы на QT
Отправлено: Anchorite от Июнь 01, 2006, 21:07
Почитай ветку по

http://prog.org.ru/forum/topic_3090_413010658d7af162c98bcefba4935119.html

Помоему даны исчерпывающие ответы