Название: почему статическая сборка лезет в DLL (было не запускается приложение)? Отправлено: Гурман от Февраль 17, 2010, 10:10 собираю приложение в QtCreator 1.2.1 от Qt 4.5.3, сборка статическая, файл .pro имеет вид:
Код: TARGET = <имя приложения> сборка в профиле Debug, библиотека собрана в аналогичном профиле, приложение собирается статически, получается .exe размером 9+ мегабайт, но при запуске выдает транспарант Цитировать Точка входа в процедуру _Z13qFlagLocationPKc не найдена в библиотеке DLL QtCored4.dll с таким ни разу не сталкивался, как это победить? пробовал собирать динамически, тоже самое кстати, если не указать библиотеки QtGuid4 и QtCored4, то почему-то автоматически подставляются их версии без отладчика QtGui4 и QtCore4, и все равно не работает Название: Re: не запускается приложение, не найден FlagLocator в QtCored4.dll Отправлено: cya-st от Февраль 17, 2010, 11:44 Настрой правильно переменные среды, и посмотри нет ли дубликатов QtCored4.dll.
Название: Re: не запускается приложение, не найден FlagLocator в QtCored4.dll Отправлено: Гурман от Февраль 17, 2010, 11:50 переменные среды проверял, вроде все верно, ссылки только на QTDIR=c:\qt\2009.03\qt и в PATH только туда же маршрут прописан
рядом с .exe никаких .dll нет вообще но почему оно вообще обращается к своим .dll если приложение собрано (по идее должно быть собрано) статически? Название: Re: не запускается приложение, не найден qFlagLocation в QtCored4.dll Отправлено: cya-st от Февраль 17, 2010, 12:14 Цитировать но почему оно вообще обращается к своим .dll если приложение собрано (по идее должно быть собрано) статически? а какой размер файла при статической сборке?Название: Re: не запускается приложение, не найден qFlagLocation в QtCored4.dll Отправлено: cya-st от Февраль 17, 2010, 12:20 Сорри, вижу
Цитировать 9+ мегабайт , если собираеш QTCreator-ом, то посмотри в переменных среды, нет ли указания на QTCreator\binНазвание: Re: не запускается приложение, не найден qFlagLocation в QtCored4.dll Отправлено: Гурман от Февраль 17, 2010, 12:24 Цитировать какой размер файла при статической сборке? 9+ МБ, при статической сборке в VisualStudio получается 12+ Мбайт (у мелокомягких всегда жира больше... ;D) собирал и динамически, получалось приложение ~700 кБайт, как и должно быть (размер моей библиотеки ~650 кБайт) глюк победил, действительно была предыдущая версия библиотек сбоку, и в PATH вкралась незаметная ошибка, все поправил, запускается, но тем не менее вопрос, почему оно лазит в DLL Название: Re: почему статическая сборка лезет в DLL (было не запускается приложение)? Отправлено: Гурман от Февраль 17, 2010, 12:51 открыл этот бинарник программой dependency walker - там все зависимости только от MS-библиотек, от Qt нету вообще...
Название: Re: почему статическая сборка лезет в DLL (было не запускается приложение)? Отправлено: lit-uriy от Февраль 17, 2010, 16:11 Цитировать кстати, если не указать библиотеки QtGuid4 и QtCored4, то почему-то автоматически подставляются их версии без отладчика QtGui4 и QtCore4, и все равно не работает Куда подставляются?Название: Re: почему статическая сборка лезет в DLL (было не запускается приложение)? Отправлено: Гурман от Февраль 18, 2010, 09:07 Цитировать Куда подставляются? в командную строку вызова компоновщика но это уже не существенно, существенно, что после нормальной статической сборки бинарник размером 9 мегов не запускается без библиотек mingwm10.dll и QtCored4.dll (хотя последняя явно подшивается в виде QtCored4.a), причем запуск производится не из gdb, а из командной строки ну mindwm10.dll ладно, с ним могут быть нюансы, но почему требуется QtCored4.dll?? единственное разумное объяснение - в QtCored4.a отсутствует что-то, что есть в QtCored4.dll, но блин же обе библиотеки искаропки может оно будет нормально, если без отладчика версию собрать... |