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

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Как перенести программу на другой компьютер?  (Прочитано 42946 раз)
igorko
Гость
« : Май 06, 2006, 10:01 »

Мужики, расскажите, пожалуйста, как перенести мою Qt программу, скомпилированную MS Visual Studio 8 Express Edition, на другой компьютер.

Спасибо!
Записан
Hordi
Гость
« Ответ #1 : Май 06, 2006, 11:14 »

А в чем проблема?
Несешь екзешник на ЧИСТУЮ винду, запускаешь, она пишет - нехватает *.dll, копируешь эту длл и повторяешь пока не запустится.
Из полученных dll формируешь инсталлером пакет установки, инсталлер должен версии проверять и не даст тупо перезаписать более новую библиотеку старой.
Записан
fear
Гость
« Ответ #2 : Май 06, 2006, 11:53 »

Цитата: "Hordi"
А в чем проблема?
Несешь екзешник на ЧИСТУЮ винду, запускаешь, она пишет - нехватает *.dll, копируешь эту длл и повторяешь пока не запустится.
Из полученных dll формируешь инсталлером пакет установки, инсталлер должен версии проверять и не даст тупо перезаписать более новую библиотеку старой.


На чистой винде при запуске QT приложения, выскакивает сообшение: "Программа не правильно сконфигурирована, возможно её переустановка может решить эту проблему ..."
Записан
igorko
Гость
« Ответ #3 : Май 06, 2006, 12:05 »

2hordi
Именно так я и пробовал, но в итоге получается результат как у Fear Грустный

Что самое удивительное после таких манипуляций изменяется размер файла программы  :shock:

Что делать?
Очень надеюсь на вашу помощь.
Записан
xor
Гость
« Ответ #4 : Май 06, 2006, 12:32 »

Мужики из Microsoft опять нахимичили. Из dll хелла они создали хелл сборок.
После создания так назваемого WinSxS легче от этого не стало, а добавилось только геммора. Для переноса на другой комп необходимо ставить x86_Redistribute.... что то там. Но это же бред перед установкой программы устанавливать какие-то там апдейты. Самое простое решение которое я нашел состоит в следующем создаем папку Microsoft.VC80.CRT в папке с программой. Копируем туда msvcp80.dll, msvcr80.dll и создаем там файл Microsoft.VC80.CRT.manifest. В нем прописываем:
Код:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <noInheritable/>
    <assemblyIdentity
        type="win32"
        name="Microsoft.VC80.CRT"
        version="8.0.50608.0"
        processorArchitecture="x86"
        publicKeyToken="1fc8b3b9a1e18e3b"
    />
    <file name="msvcr80.dll"/>
    <file name="msvcp80.dll"/>
</assembly>

После все должно по идее работать. Только не забудь скопировать кютэшные дллки в папку с программой Улыбающийся.

Удачи!
Код:
Записан
igorko
Гость
« Ответ #5 : Май 06, 2006, 13:32 »

2 Xor

Спасибо за совет.

Сделал все как описано но, к сожалению, пишет что не найден msvp80.dll
Когда переношу его в каталог программы - пишет что неправильная попытка загрузить длл и что попробуйте переустановить программу Грустный
Записан
alex0303
Гость
« Ответ #6 : Май 06, 2006, 14:14 »

А ежели GCC под виндой пользовать?
Кто пользовал? Какие DLL тянутся?
Записан
L.Marvell
Гость
« Ответ #7 : Май 06, 2006, 14:47 »

Цитата: "alex0303"
А ежели GCC под виндой пользовать?
Кто пользовал? Какие DLL тянутся?

Это зависит от того что использует приложение. Для простенькой прилаги на Qt4: qtcore4.dll, qtgui4.dll, mingw10.dll.
Для первых двух можно уменьшить размер сжав их upx'ом.
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #8 : Май 06, 2006, 14:47 »

Цитата: "alex0303"
А ежели GCC под виндой пользовать?
Кто пользовал? Какие DLL тянутся?

тогда будет всё нормально!
только Qt*.dll + mingw.dll (~200Kb)
Записан
xor
Гость
« Ответ #9 : Май 06, 2006, 16:41 »

2 igorko
Странно. У меня следующая структура:
\App
--\Microsoft.VC80.CRT
------Microsoft.VC80.CRT.manifest
------msvcp80.dll
------msvcr80.dll
----App.exe
----QtCore4.dll
----QtGui4.dll

И все работает.
Записан
fear
Гость
« Ответ #10 : Май 07, 2006, 15:36 »

Цитата: "xor"
2 igorko
Странно. У меня следующая структура:
\App
--\Microsoft.VC80.CRT
------Microsoft.VC80.CRT.manifest
------msvcp80.dll
------msvcr80.dll
----App.exe
----QtCore4.dll
----QtGui4.dll

И все работает.


При таком варианте пишет, что msvcp80.dll не является образом программы для Windows NT.
Записан
xor
Гость
« Ответ #11 : Май 11, 2006, 10:23 »

А ты прогу в релизе откомплил?
Записан
Steven_Orko
Гость
« Ответ #12 : Май 11, 2006, 21:48 »

У меня тоже не получается. Пишет аналогичные вещи и для той структуры, что дал fear.
Запихал все в один каталог, как раньше с 2003 делал, только манифест переименовал в App.exe.manifest, плюс и либы в тот же каталог... ща пишет, что либы не являются образами программы для Windows NT, да, кстати, прога в релизе
Записан
xor
Гость
« Ответ #13 : Май 12, 2006, 11:03 »

Такой нюанс. У каждого приложения есть свой манифест, только его можно сделать либо эмбеддед либо таскать с собой всегда. Если он не эмбеддед нужно скопировать скажем App.exe.manifest туда где лежит App.exe.
2 Steven_Orko: Тот манифест который Microsoft.VC80.CRT.manifest переименовывать не нужно.
Записан
igorko
Гость
« Ответ #14 : Май 12, 2006, 11:18 »

2 xor: я - в релизе откомпилил и без толку.

Все что я смог сделать - это скопировать весь (*) каталог C:\WINDOWS\WinSxS
с моего компьютера на целевой.
И тогда - заработало.
(*) - Копировал ВЕСЬ, потому-что нету времени разбираться. И потому не уверен не повлияет ли это на работу этого компьютера. (Пока не заметно)
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


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