Название: Релизная сборка Отправлено: anonymous от Октябрь 06, 2009, 08:01 Добрый день.
Запуск релизных екзешников выдает вот такую ошибку: "Точка входа в процедуру _Z5qFreePv не найдена в библиотеке DLL QtCore4.dll." Кто-нибудь сталкивался с подобной проблемой? В чем может быть моя ошибка при сборке программ? Название: Re: Релизная сборка Отправлено: Rcus от Октябрь 06, 2009, 08:23 Обычно такое бывает когда библиотеку собирают одним компилятором, а приложение другим. objdump/Dependency Walker обычно сразу снимает все вопросы.
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 22:28 У меня точно такая же ошибка. Собрал Qt 4.6.0. Далее создаю приложение в QTCreator 1.3. Если запускать релизное приложение из QTCreator, то запускается нормально, если из винды товозникает вышеописанная ошибка.
Название: Re: Релизная сборка Отправлено: G-virus от Декабрь 24, 2009, 22:31 Соберите Qt в статику и все проблемы исчезнут
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 22:37 Соберите Qt в статику и все проблемы исчезнут Вы наверное не в курсе что под статику не собирается драйвер для PostgreSQL. А мне надо с PostgreSQL.Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 22:39 Возможно PATH присутствуют несколько версий QtCore.dll и неправильная подставляется первой. Единственный способ не попасться на эти грабли - копировать DLL'ки в директорию с программой. Или писать враппер (bat-file?), добавляющий в начало к PATH пусть к правильной директории с QtCore.dll.
Название: Re: Релизная сборка Отправлено: G-virus от Декабрь 24, 2009, 22:40 Вы наверное не в курсе что под статику не собирается драйвер для PostgreSQL. А мне надо с PostgreSQL. Я просто этим не пользуюсь, поэтому не знал :) Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 22:41 Если Qt Creator запускает релизное приложение нормально, значит он просто добавляет к PATH путь к $qtcreator/qt/bin перед стартом программы. То же должны сделать и вы. Или просто скопировать DLL'ки в директорию с программой.
Название: Re: Релизная сборка Отправлено: niXman от Декабрь 24, 2009, 22:44 Соберите Qt в статику и все проблемы исчезнут равносильно ответу "убей себя" ;)Название: Re: Релизная сборка Отправлено: niXman от Декабрь 24, 2009, 22:46 ааа, ну теперь понятно. в соседней теме "это" и обсуждается :lol
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:03 Скопировал dll в директорию с прогой, ошибка "Точка входа в процедуру ??0QVariant@@QAE@AB ... не найдена в библиотеке DLL QtCore4.dll"
Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 23:06 Напрашивается вывод, что релизная версия версия программы собрана с другой версией Qt, а не с той DLL, которую вы ей подкладываете. Если Creator запускает релизную версию нормально - ищите какую именно DLL он ей подсовывает.
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:09 Как искать незнаю.
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:13 Какая-то глючная версия 4.6.0, наверное надо вернутся к старой версии до лучших времен. Может попробовать еще раз пересобрать Qt?
Название: Re: Релизная сборка Отправлено: niXman от Декабрь 24, 2009, 23:15 Вот Вы мне скажите, при чем тут версия Qt ? У Вас ошибка установки Qt. Скорее всего, как говорилось ранее, вы линкуете программу с одной версией Qt, а запускаете с другой.
Название: Re: Релизная сборка Отправлено: G-virus от Декабрь 24, 2009, 23:17 равносильно ответу "убей себя" ;) И как мне это расценивать????? Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:22 Ура, нашел в чем проблема. Библиотека QtCore4.dll находится в этих местах: C:\Qt\4.6.0\bin\, C:\Qt\4.6.0\qt\bin\ и C:\Qt\4.6.0\qt\lib\. Несоответсвие (разные размеры файла) в C:\Qt\4.6.0\bin\ по сравнению с C:\Qt\4.6.0\qt\bin\ и C:\Qt\4.6.0\qt\lib\. Теперь вопрос можна заменить библиотеку в C:\Qt\4.6.0\bin\?
Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 23:34 Начните с того, что найдёте ВСЕ файлы QtCore4.dll у себя на компьютере. Дальше по очереди подставляете их в программу с смотрите с какой она запустится. Не удивлюсь если ей окажется предыдущая версия Qt, в то время как вы думали, что собирали с текущей 4.6.0.
Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 23:37 Программа должна работать с той, что лежит в C:/Qt/4.6.0/qt/bin (она же - C:/Qt/4.6.0/qt/lib). Если это не так, значит вы собирали не с той версией Qt. Нужно вычистить директорию сборки и переконфигурировать проект с нуля.
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:43 Старую версию я начисто удалил (такие ошибки я уже давно не допускаю:) ). Прикол в том что папка C:\Qt\4.6.0\bin\ создается при установке версии 4.6.0, в ней еще находится qtcreator.exe Ver. 1.3
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:48 Версия файла в C:\Qt\4.6.0\qt\bin\ - 4.6.0.0 от 24.12.2009; а в C:\Qt\4.6.0\bin\ - 4.6.0.0 от 27.11.2009. Прога запускается если я переименовываю папку C:\Qt\4.6.0\bin\.
Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 24, 2009, 23:50 В C:/Qt/4.6.0/bin лежит DLL'ка именно для Creator'а, вы её не должны использовать ни в коем случае. Если путь к этой директории прописан в PATH - удалите его (путь в PATH) вообще.
Название: Re: Релизная сборка Отправлено: cya-st от Декабрь 24, 2009, 23:56 Всем спасибо. Выкинул из Path.
Название: Re: Релизная сборка Отправлено: Dendy от Декабрь 25, 2009, 00:03 И как мне это расценивать????? Прийдётся смириться с мыслью, что вы садист (-8 Обновлено: Дальшейний офтоп в теме будет удаляться. |