Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT4] переносимость программ 
V
    Опции темы
CuteBunny
Дата 28.5.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2008

Репутация: 1
Всего: 1



Блин, собрал релизную версию программы, запихнул в корневую папку только нужные dlls, пытаюсь запустить на другой машине... 
"Ошибка в программе - отправить отчет и т.д. и т.п."??? В чем дело?
PM MAIL   Вверх
JackYF
Дата 28.5.2008, 15:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 7
Всего: 162



Цитата(CuteBunny @  28.5.2008,  13:55 Найти цитируемый пост)
В чем дело? 

Собери дебаг-версию программу и запусти из консоли.

Добавлено через 25 секунд
99%, что дело в косяке в твоей программе, который нужно выявить.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Любитель
Дата 30.5.2008, 12:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92




M
Любитель
CuteBunny, просьба не дублировать темы в следующий раз!


Добавлено через 2 минуты
Цитата(JackYF @  28.5.2008,  15:35 Найти цитируемый пост)
запусти из консоли.

Небольшая поправка - в винде все дебажные сообщения выводятся не в stdout/stderr, а с помощью DebugOutputString. То есть в консоле мы ничего не увидим. Либо с дебаггера, либо есть какая-т утила (точно уже не помню) от SysInternals, которая перехватывает дебажные сообщения.


--------------------
PM MAIL ICQ Skype   Вверх
SABROG
Дата 30.5.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(Любитель @ 30.5.2008,  12:10)
Добавлено @ 12:12
Цитата(JackYF @  28.5.2008,  15:35 Найти цитируемый пост)
запусти из консоли.

Небольшая поправка - в винде все дебажные сообщения выводятся не в stdout/stderr, а с помощью DebugOutputString. То есть в консоле мы ничего не увидим. Либо с дебаггера, либо есть какая-т утила (точно уже не помню) от SysInternals, которая перехватывает дебажные сообщения.

Поправочка. Добавляем в .pro файл "CONGIF += console" и все видим.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
CuteBunny
Дата 2.6.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2008

Репутация: 1
Всего: 1



Добавил в pro файл строку CONFIG += console, теперь выскакивает консоль, там ничего не пишется, консоль потом быстро исчезает... 

Прочитал в assistant'e статью Deploying QT Applications, вроде шел по инструкциям, кинул нужные библиотеки, добавил в pro файл строку CONFIG -= embeded_manifest_dll - чтоб плагины работали на чужих машинах, добавил msvcr80.dll & msvcp80.dll правда в папке Visual C++ EE 2003 их не нашел, нашел в папке SDK, все равно не работает... Правда надо было еще скопировать папку  <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT, но у меня ее нет вообще...

Походу пора переходить на mingw...

Добавлено через 1 минуту и 20 секунд
Кстати, также пробовал запустить экзамплы на другой машине, таже ерунда...?...
PM MAIL   Вверх
SABROG
Дата 2.6.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(CuteBunny @  2.6.2008,  16:48 Найти цитируемый пост)
теперь выскакивает консоль, там ничего не пишется, консоль потом быстро исчезает... 


Помимо этого надо прогу запускать тоже через консоль, тогда ничего не закрывается. Но дело не в консоле это и так понятно,  туда при всем желании ничего писаться не будет, если косяк с архитектурой или с кривыми прилинкованными библиотеками.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
CuteBunny
Дата 2.6.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2008

Репутация: 1
Всего: 1



Хмммм... Как лечится тогда?...
PM MAIL   Вверх
SABROG
Дата 2.6.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(CuteBunny @ 2.6.2008,  16:56)
Хмммм... Как лечится тогда?...

А в программе точно нет ошибок ? У меня бывают "на ровном месте", когда какой-нибудь файлик изменю, а компилятор не перекомпилирует объектник. Приходится clean делать и собирать снова. Еще с дллками косяк у меня был, на двух тачках XP и 2000 две Qt собранные на каждой. Если перемещать .exeшник между тачками, не смотря на то, что на каждой есть .dll файлы, программа крашится.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 2.6.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(CuteBunny @  2.6.2008,  16:48 Найти цитируемый пост)
Прочитал в assistant'e статью Deploying QT Applications, вроде шел по инструкциям, кинул нужные библиотеки, добавил в pro файл строку CONFIG -= embeded_manifest_dll - чтоб плагины работали на чужих машинах, добавил msvcr80.dll & msvcp80.dll правда в папке Visual C++ EE 2003 их не нашел, нашел в папке SDK, все равно не работает... Правда надо было еще скопировать папку  <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT, но у меня ее нет вообще...

Рантайм для VC++ распространяется в виде отдельного пакета. Уже много раз обсуждалось - здесь это не в тему. Опиши последовательно твой процесс деплоймента smile Что и куда перенёс.

Кстати, некутешные проекты на VC++ работают?


--------------------
PM MAIL ICQ Skype   Вверх
just_geek
Дата 3.6.2008, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 309
Регистрация: 13.12.2007

Репутация: 7
Всего: 10



Цитата

CONFIG -= embeded_manifest_dll

Вообще-то это для плагинов, а не для твоего проекта. К примеру если ты используешь sqlite, то должен его перекомпилировать с этой опцией.

Цитата

добавил msvcr80.dll & msvcp80.dll правда в папке Visual C++ EE 2003 их не нашел, нашел в папке SDK, все равно не работает... Правда надо было еще скопировать папку  <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT, но у меня ее нет вообще...

Я так и не понял какая версия Visual C++ у тебя? если 2003, то он называется по другому - Visual C++ Toolkit 2003 (это бесплатный компилер, без IDE к тому же). Если такая версия, то искать нужно mvcr71.dll & msvcp71.dll.

Цитата

Рантайм для VC++ распространяется в виде отдельного пакета.

Не обязательно, можно из папки <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VCх0.CRT скопировать все файлы включая манифест, в папку с программой и все будет работать. Сам так делаю, и все прекрасно работает.
PM MAIL   Вверх
Любитель
Дата 3.6.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(just_geek @  3.6.2008,  11:19 Найти цитируемый пост)
Не обязательно, можно из папки <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VCх0.CRT скопировать все файлы включая манифест, в папку с программой и все будет работать. Сам так делаю, и все прекрасно работает. 

Я знаю smile Я сказал про основной способ. В своё время в разделес по VC++ я писал ни раз о деплойменте приложений, написанных на VC++ (2005 и выше). А если у него 2003-я студия, то там манифесты не использовались - достаточно просто копирования длл-ок рантайма.


--------------------
PM MAIL ICQ Skype   Вверх
CuteBunny
Дата 3.6.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2008

Репутация: 1
Всего: 1



VC++ 2005 Express Edition, ошибся smile , консольные приложения (типа #include <iostream> using namespace std; int main(int argc, char **argv){cout<<"Hello, world!\n"; return 0;}), некутишные работают, больше я ничего там не собирал, да и можно ли на укороченном?

В папку release с экзешником кидаю

QtCore4.dll, QtGui4.dll, QtSql4.dll (бд прога, sqlite движок), дальше, копирую из папки SDK, msvcr80.dll, msvcp80.dll, вот вроде и все...

в pro файле следующие строки:

QT += sql
CONFIG += release
CONFIG -= debug
CONFIG += console
CONFIG -= embeded_manifest_dll

и т.д.

qmake -o Makefile MyProject.pro

nmake
PM MAIL   Вверх
Любитель
Дата 3.6.2008, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Цитата(CuteBunny @  3.6.2008,  13:47 Найти цитируемый пост)
дальше, копирую из папки SDK, msvcr80.dll, msvcp80.dll, вот вроде и все...

Не всё. Про манифест рантайма забыл.


--------------------
PM MAIL ICQ Skype   Вверх
CuteBunny
Дата 3.6.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2008

Репутация: 1
Всего: 1



манифест рантайма? у меня там лежит манифест от проги, вылез после nmake'a... оно? я нуб в этом пока что smile  
PM MAIL   Вверх
Любитель
Дата 3.6.2008, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Microsoft.VC80.CRT.manifest. Расположен в %VSDIR%\VC\redist\x86\Microsoft.VC80.CRT


--------------------
PM MAIL ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0798 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.