Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: Fonarix от Июнь 14, 2007, 20:17 Всем привет!!!
Возникла проблема с Qt плагином gif. Мне необходима аппликушка которая конвертит графические форматы файлов посредством Кт. В общем под виндой все нормально работает, но подмаком нет. Суть в том, что gif конвертер реализован в виде плагина. Я так понял что под маком этот плагин libqgif.dylib не находится, так как потратил порядочно времения для этого под виндовс, и на конец заработало! Мак так же можно рассматримать как линукс, есть решения? Читнул инфо тут, но как вы понимаете безнадежно ) http://doc.trolltech.com/4.3/deployment-mac.html#qt-plugins Функция QApplication::libraryPaths () возвращает действительные пути, где все необходимые либы есть: libqgif_debug.dylib libqgif.dylib libqjpeg_debug.dylib libqjpeg.dylib libqmng_debug.dylib libqmng.dylib libqsvg_debug.dylib libqsvg.dylib Какие есть способы использования qt.conf и необходимо ли оно? Спасибо!!! Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: AlexVR от Июнь 14, 2007, 21:10 При переносе готовой программы на чистую Винду, у меня пропадали SVG-хи, помогло копирование папки imageformats из ...\qt\4.Х.Х\plugins\ в католог с exe-ой (Влом было тогда Qt перенастраивать). Может попробывать и тебе так же.
З.Ы.: К сожелению, Маки к которым я могу добраться слишком стары для Qt, да и вообще слишком стары. Так что если ответ делитантский, прошу не венить :) Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: Fonarix от Июнь 15, 2007, 12:16 Цитата: "AlexVR" При переносе готовой программы на чистую Винду, у меня пропадали SVG-хи, помогло копирование папки imageformats из ...\qt\4.Х.Х\plugins\ в католог с exe-ой (Влом было тогда Qt перенастраивать). Может попробывать и тебе так же. З.Ы.: К сожелению, Маки к которым я могу добраться слишком стары для Qt, да и вообще слишком стары. Так что если ответ делитантский, прошу не венить :) Понапихивал в этот бандл папок imageformats, просто файлов во все папки в бандле - фанарь! Не работает! :cry: Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: yshurik от Июнь 15, 2007, 15:39 Цитата: "Fonarix" Цитата: "AlexVR" При переносе готовой программы на чистую Винду, у меня пропадали SVG-хи, помогло копирование папки imageformats из ...\qt\4.Х.Х\plugins\ в католог с exe-ой (Влом было тогда Qt перенастраивать). Может попробывать и тебе так же. З.Ы.: К сожелению, Маки к которым я могу добраться слишком стары для Qt, да и вообще слишком стары. Так что если ответ делитантский, прошу не венить :) Понапихивал в этот бандл папок imageformats, просто файлов во все папки в бандле - фанарь! Не работает! :cry: Возможно в main.cpp засунуть #ifdef Q_WS_MAC QDir libDir( QCoreApplication::applicationDirPath() ); libDir.cdUp(); libDir.cd("plugins"); QApplication::addLibraryPath( libDir.absolutePath() ); libDir.cd("imageformats"); QApplication::addLibraryPath( libDir.absolutePath() ); #endif При distribution для плугинов надо делать тоже что-то вроде install_name_tool -change QtCore.framework/Versions/4/QtCore \ @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ install_name_tool -change QtGui.framework/Versions/4/QtGui \ @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ Как и для frameworks Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: Fonarix от Июнь 19, 2007, 10:42 Цитата: "yshurik" Цитата: "Fonarix" Цитата: "AlexVR" При переносе готовой программы на чистую Винду, у меня пропадали SVG-хи, помогло копирование папки imageformats из ...\qt\4.Х.Х\plugins\ в католог с exe-ой (Влом было тогда Qt перенастраивать). Может попробывать и тебе так же. З.Ы.: К сожелению, Маки к которым я могу добраться слишком стары для Qt, да и вообще слишком стары. Так что если ответ делитантский, прошу не венить :) Понапихивал в этот бандл папок imageformats, просто файлов во все папки в бандле - фанарь! Не работает! :cry: Возможно в main.cpp засунуть #ifdef Q_WS_MAC QDir libDir( QCoreApplication::applicationDirPath() ); libDir.cdUp(); libDir.cd("plugins"); QApplication::addLibraryPath( libDir.absolutePath() ); libDir.cd("imageformats"); QApplication::addLibraryPath( libDir.absolutePath() ); #endif При distribution для плугинов надо делать тоже что-то вроде install_name_tool -change QtCore.framework/Versions/4/QtCore \ @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ install_name_tool -change QtGui.framework/Versions/4/QtGui \ @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ Как и для frameworks Попробывал не работает :cry: Еще, перед теми строками было вставленно следуещее, QApplication::addLibraryPath("/dev_/ImageConverter"); QApplication::addLibraryPath(QLibraryInfo::location((QLibraryInfo::PluginsPath))); причем, в каждом из путей находилась папка imageformats с либами. До дистрибутивов еще далеко), так как еще даже в дебаге не удалось загрузить плагин. Мне необходимо посредством QImage открыть GIF файл и просто сохранить его как BMP и др. По поводу install_name_tool, зачем его использовать, как я пологаю, для динамической загрузки dylib? Я его использую при дистрибуции с динамическими библиотеками при статическом связывании. Кстати для Qt так же нашел скрипт: http://wiki.qtcentre.org/index.php?title=Mac_OSX_Deployment_Script Для обычних тестовых приложений вроде работает. (Но не для плагинов). Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: yshurik от Июнь 19, 2007, 11:45 Цитата: "Fonarix" Цитата: "yshurik" Цитата: "Fonarix" Цитата: "AlexVR" При переносе готовой программы на чистую Винду, у меня пропадали SVG-хи, помогло копирование папки imageformats из ...\qt\4.Х.Х\plugins\ в католог с exe-ой (Влом было тогда Qt перенастраивать). Может попробывать и тебе так же. З.Ы.: К сожелению, Маки к которым я могу добраться слишком стары для Qt, да и вообще слишком стары. Так что если ответ делитантский, прошу не венить :) Понапихивал в этот бандл папок imageformats, просто файлов во все папки в бандле - фанарь! Не работает! :cry: Возможно в main.cpp засунуть #ifdef Q_WS_MAC QDir libDir( QCoreApplication::applicationDirPath() ); libDir.cdUp(); libDir.cd("plugins"); QApplication::addLibraryPath( libDir.absolutePath() ); libDir.cd("imageformats"); QApplication::addLibraryPath( libDir.absolutePath() ); #endif При distribution для плугинов надо делать тоже что-то вроде install_name_tool -change QtCore.framework/Versions/4/QtCore \ @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ install_name_tool -change QtGui.framework/Versions/4/QtGui \ @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui \ $(DESTDIR)MyApp.app/Contents/plugins/imageformats/libqjpeg.dylib; \ Как и для frameworks Попробывал не работает :cry: Еще, перед теми строками было вставленно следуещее, QApplication::addLibraryPath("/dev_/ImageConverter"); QApplication::addLibraryPath(QLibraryInfo::location((QLibraryInfo::PluginsPath))); причем, в каждом из путей находилась папка imageformats с либами. До дистрибутивов еще далеко), так как еще даже в дебаге не удалось загрузить плагин. Мне необходимо посредством QImage открыть GIF файл и просто сохранить его как BMP и др. По поводу install_name_tool, зачем его использовать, как я пологаю, для динамической загрузки dylib? Я его использую при дистрибуции с динамическими библиотеками при статическом связывании. Кстати для Qt так же нашел скрипт: http://wiki.qtcentre.org/index.php?title=Mac_OSX_Deployment_Script Для обычних тестовых приложений вроде работает. (Но не для плагинов). Должно работать. Советую проверить в qDebug() << QCoreApplication::libraryPaths () ps. install_name_tool нужен чтобы потом не на development машине при загрузки plugin искал qt библиотеки в @executable_path Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: Fonarix от Июнь 21, 2007, 14:30 libraryPaths - возвращает пути с либами и там же папка imageformats, понапихивал ее везде...
Задумываюсь о том не подключить ли прямо сырец файл плагина в проект... :D Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: yshurik от Июнь 21, 2007, 15:24 Цитата: "Fonarix" libraryPaths - возвращает пути с либами и там же папка imageformats, понапихивал ее везде... Задумываюсь о том не подключить ли прямо сырец файл плагина в проект... :D А у вас случайно не статик сборка? Как раз тогда плугины надо включать прямо в бинарник Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: goer от Июнь 21, 2007, 15:44 Я правильно понимаю: Вы собрали кути под маком, в том числе собрали и плагины под маком. Запускаете свою прогу под маком и гифы не работают?
Если так, то возможно стоит задуматься что сделано не так по сравнению со сборкой под виндой. Папку imageformats нужно кидать в папку с бинарем проги, а не везде где только можно ) По своему опыту заметил что addLibraryPath() не работает. Название: Использование плагина Gif для Мак ОСХ/(Linux?) Отправлено: Fonarix от Июнь 21, 2007, 17:02 To yshurik:
Сборка с использованием динамических библиотек. Сборки по вообще по началу небыло, так как по началу стоял пакет qt-mac-commercial-4.2.3.dmg, в нем не было Gif плагина и сырцов (во всяком случае я их не нашел...). Затем я все откомпилил из этого пакета qt-mac-commercial-src-4.2.3.tar.gz, и теперь пытаюсь решить проблему imageformats... Если addLibraryPath() не работает, libraryPaths() ворзвращает вполне корретные пути, которые я указывал? Спасибо! |