Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: break от Январь 16, 2009, 03:59



Название: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 03:59
В Linux была написана программа использующая собственный виджет. Он интегрировался в дизайнер и копировался в /usr/lib для работы самой программы.

Как быстро собрать такого плана проект под винду.

Попробовал сам:
1) скачал QT
2) собрал
3) сгенерил для своего проекта sln
при компиляции в 2008 студии на этапе сборки(линковки) уже приложения (виджет собирается первым) - не хочет находит функции связанные с виджетом
Пробовал подсовывать lib файл подпроекту программы всяческим образом(через студию) - ничего не получилось

В любом случае даже если это и можно поправить - меня не устраивает т.к. нужна гот. система для пересборки Linux проектов имея pro файл - без шаманства..

Программирую в линукс - мне надо только готовый инструментарий для компиляции в винде.
QtCreator - для этого предназначен - может помочь? (спрашиваю т.к. качать 200 мб)


Название: Re: сборка проекта разработанного в Linux
Отправлено: Rcus от Январь 16, 2009, 04:11
А этот ваш виджет оформлен в виде динамический библиотеки? Если так, то http://www.prog.org.ru/topic_8259_0.html
Не понимаю шаманства с созданием .sln, если нужно только собрать проект и есть уже .pro файл, то почему бы просто не использовать qmake && nmake?


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 05:14
потому что не работает - пробовал и qmake, nmake - в первую очередь так сделал т.к. в линуксе так проект собираю

виджет оформлен не только в кач. дин. билиотеки - но и в кач. плагина к дизайнеру


Название: Re: сборка проекта разработанного в Linux
Отправлено: Rcus от Январь 16, 2009, 05:39
Тогда все же советую почитать статью по ссылке.


Название: Re: сборка проекта разработанного в Linux
Отправлено: BaltikS от Январь 16, 2009, 07:58
break какие хоть ошибки пишет? Для того чтобы скомпилеть плагин для дизайнера, не обязательно делать проект студии. Нужно хотя бы чтобы компилятор видел Qt....


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 11:35
Цитировать
скомпилеть плагин
ПЛАГИН ДЛЯ ДИЗАЙНЕРА СОБИРАЕТСЯ!!!
Программа его использующая не может собраться зависимости на этапе линковки - unresolved symbol


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 11:37
Цитировать
Тогда все же советую почитать статью по ссылке.

Советую тебе тогда тоже почитать! К моей текущей проблеме статья отношенияне не имеет!

Виджет написан классическим для QT способом - т.е. класс и система плагинов QT т.что тут все ок. В Linux все работает и собирается на рас.


Название: Re: сборка проекта разработанного в Linux
Отправлено: pastor от Январь 16, 2009, 11:45
Советую тебе тогда тоже почитать! К моей текущей проблеме статья отношенияне не имеет!
...
В Linux все работает и собирается на рас.

Имеет самое прямое отношение! Linux != Windows. В Винде в этом плане по-другому! Чем просто спорить, взял бы да и прочел статью и попробывал реализовать так как написано.


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 11:47
Цитировать
Имеет самое прямое отношение! Linux != Windows. В Винде в этом плане по-другому! Чем просто спорить, взял бы да и прочел статью и попробывал реализовать так как написано.

На кой черт я использую систему плагинов QT - чтобы в каждой системе библиотеки переписывать? Почему вы вообще тк уверены что вопрос в этом - я уже повторяюсь но DLL у меня прекрасно собирается - не соб-ся только программа в кот. эта библиотека есть как зависимость


Название: Re: сборка проекта разработанного в Linux
Отправлено: Rcus от Январь 16, 2009, 11:49
Успокойтесь, проблема не смертельна и вполне разрешима. Если не хотите показывать сообщения компилятора/исходники (хотя исходники не надо, хотелось бы взглянуть на заголовки), то давайте действовать наугад. Попробуйте посмотреть экспортируемые символы библиотеки через Dependency Walker (из состава Platform SDK) или аналогичную программу. Попробуйте собрать компилятором MinGW.


Название: Re: сборка проекта разработанного в Linux
Отправлено: pastor от Январь 16, 2009, 11:55
я уже повторяюсь но DLL у меня прекрасно собирается - не соб-ся только программа в кот

Проблема в линковке, ведь так? А не линкуестся, потому что ничего не экспортируется из вашей DLL.


Название: Re: сборка проекта разработанного в Linux
Отправлено: BaltikS от Январь 16, 2009, 12:07
Необходимо проверить, подхватывает ли дизайнер этот плагин?
Если нет, то скопировать собранную DLL и LIB в папку QTDIR/plugins/designer и ещё раз собрать проект....


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 13:59
Проблема была в библиотеке! Я был неправ. ;) А все правы!

Но читая статью увидел там что надо использовать Q_DECL_IMPORT/Q_DECL_EXPORT только при использовании MSVC то есть компилятора от майкрософт.

Скачал qt creator - собственно был интересен тем что там mingw и qt собранный под винду есть.

В виджете 2 класса сам виджет и интерфейсная обвязка-класс для дизайнера в обоих поставил Q_DECL_EXPORT - тогда проект стал собираться. Получается что ничего из библиотеки не экспортится не из-за использования компилятора майкрософт - а из-за платформы windows.
Собирал через командную строку minGW - то есть
qmake
make

Но теперь почему то этот собранный виджет не работает и в дизайнере - не появляется (должен появиться на отдельной вкладке как в линукс) - подкидывал именно в QT (plugins/designer) кот. идет с QtCreator - что еще нужно сделать?

Собственно и в программе виджет ведет себя так же - как в дизайнере, она запускается но никакой прорисовки - пустота там где он должен быть..


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 16, 2009, 14:09
О нет - я ошибся опять !!! В программе виджет работает (он отображает картинку - а у меня при компировании проекта из виндовс просто имена побились). А вот в дизайнере пока его не могу заставить работать - что еще упустил?

За остальное всем спасибо!


Название: Re: сборка проекта разработанного в Linux
Отправлено: Rcus от Январь 16, 2009, 15:30
qthelp://com.trolltech.designer.450/qdoc/designer-creating-custom-widgets.html
Цитировать
Plugin Requirements

In order for plugins to work correctly on all platforms, you need to ensure that they export the symbols needed by Qt Designer.

First of all, the plugin class must be exported in order for the plugin to be loaded by Qt Designer. Use the Q_EXPORT_PLUGIN2() macro to do this. Also, the QDESIGNER_WIDGET_EXPORT macro must be used to define each custom widget class within a plugin, that Qt Designer will instantiate.
//guess


Название: Re: сборка проекта разработанного в Linux
Отправлено: break от Январь 17, 2009, 01:18
Надо было в релизе скомпилять!
Всем спасибо еще раз!
Тема закрыта!