Russian Qt Forum
Ноябрь 05, 2024, 13:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Qt Creator и qwt под win MinGW  (Прочитано 22449 раз)
slawa
Гость
« : Февраль 19, 2009, 00:23 »

Здравствуйте!
У меня не получается подключить qwt к Qt Creator как плагин.
При этом qwt к Qt Designer как плагин подключается.

Все комплировалось MinGW, Qt Creator - как debug. qwt пробовал и debug и release.
К Qt Designer qwt подключается, когда qwt plugin скомпилирован как release.
Другой плагин (состоящий из одного модуля) с Qt Creator работает.
Что делать?
Записан
TeMKin
Гость
« Ответ #1 : Июнь 08, 2009, 03:53 »

Исходные данные:
1. Система WinXp sp2
2. Qt 4.5.1 (release)
3. QtCreator 1.1.0
4. Qt 4.5.1 (debug)
5. Qwt 5.1.2 (5.2.0)

Вот такая ситуация:
Библиотека Qwt собрана в release версии и подключена к QtCreator`у. Я использую  Qwt в своем проекте.
При сборке моей программы в версии release все нормально, а при попытке сборки этой же программы в версии debug происходит ошибка (Runtime Error) - именно уже при запуске откомпилированной программы, т.е., я так понимаю, сборка происходит нормально.

По этой теме из того что я нашел в инете:
Есть предположения, что qwt версии 5.2.0. не дружит с версией Qt 4.5.1- Я пробовал использовать вместо версии 5.2.0 -> 5.1.2, результат тот же самый.
Пробовал установить ещё один qtcreator 2009.2.1 и использовать для сборки программы в версии debug qt из него, но результата это тоже не принесло.

Вот собственно вопрос - как же все-таки можно подружить qwt 5.x.x и qtcreator 1.1.0 для сборки программ в версии debug, повторюсь при сборке в release все нормально.
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Июнь 08, 2009, 08:14 »

у меня последнее qwt не дружило с qt4.5.1. Правда оба были собраны VS2008. Помогло только qt4.5.0. Пока на нем и сижу.  Под линуксом  qt4.5.1 + qwt 5.2  работает замечательно.
Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #3 : Июль 10, 2009, 21:24 »

Цитировать
Пробовал установить ещё один qtcreator 2009.2.1 и использовать для сборки программы в версии debug qt из него, но результата это тоже не принесло.
А зачем другой creator ставить если сборку будет осуществлять тот же minGW? или под винду каждый креатор с  разными minGW идет?
У нас проект с Qwt 5.1.1 под Ubuntu - все нормально работает с Qt 4.5.2
Записан
AlekseyK
Гость
« Ответ #4 : Октябрь 02, 2009, 18:02 »

Здравствуйте!
У меня не получается подключить qwt к Qt Creator как плагин.
При этом qwt к Qt Designer как плагин подключается.

Все комплировалось MinGW, Qt Creator - как debug. qwt пробовал и debug и release.
К Qt Designer qwt подключается, когда qwt plugin скомпилирован как release.
Другой плагин (состоящий из одного модуля) с Qt Creator работает.
Что делать?
Сейчас собираю, разбираюсь. Похоже, что qwt ничего не знает про Qt Creator и по умолчанию кидает плугины в папку дизайнера, если их от туда просто скопировать, то всё одно они в креаторе не работают. В принципе было бы не критично, если бы дизайнер их видел. Но он выводит сообщение об ошибке, что не могу загрузить плугин, потому, что модуль не найден. В чём может быть проблема?!
Записан
AlekseyK
Гость
« Ответ #5 : Октябрь 02, 2009, 19:29 »

Под линуксом всё отлично.
Записан
AlekseyK
Гость
« Ответ #6 : Октябрь 05, 2009, 16:06 »

Ошибка следующая: Cannot load library C:/Qt/2009.04/qt/plugins/designer/qwt_designer_plugin5.dll: The specified module could not be found.

Решение нашёл на буржуйском сайте: нужно скопировать qwt5.dll в папку $(QTDIR)/bin
Записан
fland
Гость
« Ответ #7 : Март 18, 2010, 00:55 »

аналогичная проблема. В Designer видятся qwt, а вот в Creator - нет. Причем его нет даже в списке загруженных плагинов в qt creator, надеялся, что скажет почему не загрузил, а он его похоже просто не нашел Грустный. Компилил qwt и mingw32-make и nmake от Visual Studio 2010. Как же правильно скомпилить то его?
В dependency walker ссылаются на MSVCR90.dll - это вроде как 2008 студии dll, может нужно было именно ей компилить qwt?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #8 : Март 18, 2010, 02:17 »

>>Причем его нет даже в списке загруженных плагинов в qt creator
И не будет, у креатора своя система плагинов, не совместимая с дизайнером
Записан

Юра.
fland
Гость
« Ответ #9 : Март 18, 2010, 16:55 »

>>Причем его нет даже в списке загруженных плагинов в qt creator
И не будет, у креатора своя система плагинов, не совместимая с дизайнером
а какая тогда совместимая?

з.ы. нашел, что подключенный модуль webview.dll лежит в особой папке qt\bin\designer , кинул туда же модуль qwt5.dll - он таки его наконец-то увидел. Но сказал что этот файл не является корректным модулем Qt, попробую теперь пересобрать qwt с помощью nmake майкрософтовского, может ему полегчает - а было это оченбь хорошо
Записан
fland
Гость
« Ответ #10 : Март 18, 2010, 22:12 »

эпопея продолжается. Оказывается туда нужно копировать файл из папки plugins/designer qwt'шной, но теперь другое грит - "...использует несовместимую библиотеку Qt. Ожидается ключ "Windows msvc release full-config", но получен ключ "Windows mingw release full-config". Собственно отсюда вопрос - где Qt Creator научить собирать проект qwt с ключем win32-msvc из mkspecs вместо win32-g++?

з.ы. таки нашел как - достаточно просто в ключах qmake сказать win32-msvc, но это не помогло - теперь qt creator при сборке nmake ругается на определённом этапе что: "rc" не является внутренней или внешней командой, исполняемой проргаммой или пакетным файлом.
Следует учесть что nmake из VS 2010, пробовал указывать wn32-msvs2008 - та же петрушка, а ежели вернуть обратно win32-g++ - все гут

теперь решил собирать студией из командной строки. Нормально сконфигурились makefile разные, запустил сборку компилятором nmake через Visual Studio Command Promt. Шла-шла компиляция, а потом на финальном этапе мне выдали фразу - "да что ж это такое, товарищ, а файлика QtGUI4.lib вовсе то и нет!", поглядел - действительно нет, в папке qt\lib лежат разные себе *.a и *.prl файлики. Собственно никаких файлов *.lib я вообще нигде не нашел. Видимо без пересборки qt не обойтись Грустный.

так и не вышло собрать заново qwt с помощью nmake. так же не вышло и пересобрать все qt sdk под mingw. Поэтому пошел по пути наименьшего сопротивления - скачал исходники qt creator и скомпилил его mingw-make из уже установленного qt sdk, и вуяла - появились таки эти злосчастные виджеты. Одна проблема - интерфейс qt creator переключился на английский, особо не напрягает, но все таки осадочек остался...

ну и да - буду благодарен за любые советы по поводу того, как это можно сделать более элегантно, или где таки можно достать эти требуему nmake *.lib файлы...
« Последнее редактирование: Март 19, 2010, 00:38 от fland » Записан
White Owl
Гость
« Ответ #11 : Март 19, 2010, 17:55 »

Поэтому пошел по пути наименьшего сопротивления - скачал исходники qt creator и скомпилил его mingw-make из уже установленного qt sdk, и вуяла - появились таки эти злосчастные виджеты.
Хорошо жить на свете тем кто не возится с мелгкомягимики недоразумениями Улыбающийся

ну и да - буду благодарен за любые советы по поводу того, как это можно сделать более элегантно, или где таки можно достать эти требуему nmake *.lib файлы...
.a и .lib это суть одно и тоже, просто разные традиции именования. В GNU C/C++ библиотеки имеют расширение .a - значит "archive of objects" а в MSVC .lib - "library of objects". А внутри они одинаковы.
Переименуй/скопируй/сделай линк из somelib.a в somelib.lib и VC будет счастлив.
Записан
fland
Гость
« Ответ #12 : Март 19, 2010, 21:43 »

ну и да - буду благодарен за любые советы по поводу того, как это можно сделать более элегантно, или где таки можно достать эти требуему nmake *.lib файлы...
.a и .lib это суть одно и тоже, просто разные традиции именования. В GNU C/C++ библиотеки имеют расширение .a - значит "archive of objects" а в MSVC .lib - "library of objects". А внутри они одинаковы.
Переименуй/скопируй/сделай линк из somelib.a в somelib.lib и VC будет счастлив.

хе-хе, про то, что .a это .lib - я то знал, спасибо, но вот то, что файл может называться не QtGui4.a а libQtGui4.a никак не смог догадаться Грустный, переименование полечило nmake, но радоваться пока рано:
moc_qwt_legend.obj : error LNK2001: unresolved external symbol "__declspec(dllim
port) public: virtual int __thiscall QFrame::qt_metacall(enum QMetaObject::Call,
int,void * *)" (__imp_?qt_metacall@QFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_qwt_plot.obj : error LNK2001: unresolved external symbol "__declspec(dllimpo
rt) public: virtual int __thiscall QFrame::qt_metacall(enum QMetaObject::Call,in
t,void * *)" (__imp_?qt_metacall@QFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
moc_qwt_plot_canvas.obj : error LNK2001: unresolved external symbol "__declspec(
dllimport) public: virtual int __thiscall QFrame::qt_metacall(enum QMetaObject::
Call,int,void * *)" (__imp_?qt_metacall@QFrame@@UAEHW4Call@QMetaObject@@HPAPAX@Z
)
moc_qwt_text_label.obj : error LNK2019: unresolved external symbol "__declspec(d
llimport) public: static struct QMetaObject const QFrame::staticMetaObject" (__i
mp_?staticMetaObject@QFrame@@2UQMetaObject@@B) referenced in function "void __cd
ecl `dynamic initializer for 'public: static struct QMetaObject const QwtTextLab
el::staticMetaObject''(void)" (??__E?staticMetaObject@QwtTextLabel@@2UQMetaObjec
t@@B@@YAXXZ)
moc_qwt_legend.obj : error LNK2001: unresolved external symbol "__declspec(dllim
port) public: static struct QMetaObject const QFrame::staticMetaObject" (__imp_?
staticMetaObject@QFrame@@2UQMetaObject@@B)
moc_qwt_plot.obj : error LNK2001: unresolved external symbol "__declspec(dllimpo
rt) public: static struct QMetaObject const QFrame::staticMetaObject" (__imp_?st
aticMetaObject@QFrame@@2UQMetaObject@@B)
moc_qwt_plot_canvas.obj : error LNK2001: unresolved external symbol "__declspec(
dllimport) public: static struct QMetaObject const QFrame::staticMetaObject" (__
imp_?staticMetaObject@QFrame@@2UQMetaObject@@B)
..\lib\qwt5.dll : fatal error LNK1120: 641 unresolved externals
NMAKE : fatal error U1077: 'echo' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 10.0\VC\BI
N\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
 и еще аналогичных таких ошибок овер 9000 Грустный придется еще и еще плясать с бубном, а говорили, что в виндовс никогда не нужно парить моск со сборками, конфигами, etc Грустный
Записан
fland
Гость
« Ответ #13 : Март 30, 2010, 16:22 »

полечилось просто - скачал исходники qt designer и скомпилировал его с помощью установленного qt и mingw - теперь он видит плагины qwt и толично работает графикой Улыбающийся
Записан
KuZ
Гость
« Ответ #14 : Апрель 15, 2010, 23:00 »

Подскажите как собрать qwt 5.2.0 дебажную версию.
Gри сборке ставлю ключи:
Код:
#CONFIG           += debug     # release/debug/debug_and_release
CONFIG           += debug_and_release
CONFIG           += build_all
в самом проекте подключаю:
Код:
INCLUDEPATH += E:/Qt.project/qwt-5.2.0/src
LIBS += E:/Qt.project/qwt-5.2.0/lib/libqwtd5.a
при сборке выдает Run-time error, если собираю релиз все нормально. XP 3sp, Qt 4.6.2, Qt Creator 1.3.1, MinGW.
По форуму искал пишут, что есть проблема такая но как решить не нашел.

Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.148 секунд. Запросов: 23.