Название: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 11:10 Добрый день. Для рисования графиков решил воспользоваться библиотекой Qwt-6.1.3.
Установил по инструкции. Заголовочные файлы компилятором видятся. Сборка проходит нормально. Есть две проблемы: 1. Редактор форм не видит виджетов QWT; 2. Запущенная программа завешается, не найдя DLL. Какой DLL - не сообщает. Падает раньше, чем начинает работать дебагер. В составе библиотеки нашел всего 3 DLL: qwt_designer_plugin.dll qwtd.dll qwt.dll Засунул их все по следующим путям: C:\Qt\5.x\mingw53_32\bin C:\Qt\5.x\mingw53_32\lib C:\Qt\5.x\mingw53_32\plugins\designer C:\Qt\Tools\QtCreator\bin\plugins\designer C:\Qt\Tools\QtCreator\lib Что не так? Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Пантер от Май 12, 2017, 11:15 http://dependencywalker.com/
Вот этим можешь посмотреть зависимости. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 11:54 debug и release не перепутаны при подключении?
qtdesigner собран с помощью msvc. Поэтому не подгружается инструмент редактора. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: kuzulis от Май 12, 2017, 12:01 Цитировать 1. Редактор форм не видит виджетов QWT; Да и не нужно это, ну правда. Цитировать Засунул их все по следующим путям: C:\Qt\5.x\mingw53_32\bin C:\Qt\5.x\mingw53_32\lib C:\Qt\5.x\mingw53_32\plugins\designer C:\Qt\Tools\QtCreator\bin\plugins\designer C:\Qt\Tools\QtCreator\lib Не надо так. Я не знаю как ты собирал и устанавливал Qwt, как подключал к проекту и где она у тебя лежит. Но обычно самый простой путь - это в настройках проекта в QtC добавить путь для PATH к директории с Qwt в "Projects->Run->Run Environment" для твоей запускаемой екзешки. Тогда твоя программулина будет запускаться из QtC и отлаживаться. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 12:35 Цитировать 1. Редактор форм не видит виджетов QWT; Да и не нужно это, ну правда. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 12:46 http://dependencywalker.com/ Вот этим можешь посмотреть зависимости. Посмотрел. Одну dll добавил. На один шаг продвинулся. Но дальше он стал ругаться на dll из system32, которые там есть. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Igors от Май 12, 2017, 13:00 2. Запущенная программа завешается, не найдя DLL. Какой DLL - не сообщает. Падает раньше, чем начинает работать дебагер. А что пишет? Может "invalid side-by-side"? Так бывает если либа собрана с одними runtime(ами) а приложение с другимиНазвание: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 13:22 Цитировать Но обычно самый простой путь - это в настройках проекта в QtC добавить путь для PATH к директории с Qwt в "Projects->Run->Run Environment" для твоей запускаемой екзешки. Тогда твоя программулина будет запускаться из QtC и отлаживаться. Там все добавлено Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 13:25 Немного заморочно инструмент настраивается, но пользу имеет при просмотре ui файлов. Помню были разночтения в отображении QWidget и QwtPlot, с политикой размеров по умолчанию, вроде, было связано. Но, по правде, всё это мелочи. Ну эту беду я смогу пережить. Вообще предпочитаю все отображение писать текстом. Ui не использую. А вот с DLL пока затык. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 13:46 взглянуть бы на pro и на лог сборки
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 14:16 С помощью вот этой примочки
depends Выяснил, что проблема в нескольких DLL из windows/system32/downlevel Беда в том, что все эти DLL там есть и проекты без QWT таких проблем не создают. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 14:17 взглянуть бы на pro и на лог сборки Код: #------------------------------------------------- Это проект. Сборка проходит чисто, без единого предупреждения. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 14:20 взглянуть бы на pro и на лог сборки Вот консоль сборки Код: 14:18:42: Выполняются этапы для проекта qwt_test... Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 14:21 -lqwtd для дебага
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 14:35 Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 15:39 Должно
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 17:40 Создал проект заново.
Теперь новая напасть. Код: #include <QMainWindow> Ругается на QwtPlot Цитировать E:\Programs\QWT_test\untitled\mainwindow.cpp:7: ошибка: invalid use of incomplete type 'class QwtPlot' myPlot = new QwtPlot (this); ^ Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 17:44 2. Запущенная программа завешается, не найдя DLL. Какой DLL - не сообщает. Падает раньше, чем начинает работать дебагер. А что пишет? Может "invalid side-by-side"? Так бывает если либа собрана с одними runtime(ами) а приложение с другимиНе, такого не писал. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 12, 2017, 20:46 Это означает, что класс просто предварительно объявлен без предоставления его тела.
Include qwt_plot.h решение Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 12, 2017, 22:05 Это означает, что класс просто предварительно объявлен без предоставления его тела. Include qwt_plot.h решение Не помогло. Результат тот же. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 10:52 Кажется я приблизился к решению, но без подсказки не получится.
Исправил в проекте строку LIBS. Написал так: Код: LIBS+= C:\Qwt-6.1.3\lib Цитировать libqwt.a libqwtd.a qwt.dll qwtd.dll Сообщение компилятора такое Цитировать :-1: ошибка: cannot find C:\Qwt-6.1.3\lib: Permission denied От чего то Qt не имеет доступа к файлам QWT. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 11:53 Ну наконец разобрался. Переписал в проекте инструкцию LIBS так
Код: LIBS+= "C:/Qt/Qwt-6.1.3/lib/qwt.dll" Теперь компилится и запускается. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 14:26 Короче, беда с этой библиотекой. После того. как заставил компилиться, повторилась ситуация, с которой и начал. Ругается на отсутствующие DLL. При помощи depends выявил недостачу в SYSTEM32 28 штук различных DLL. Все их скачал http://ru.dllworld.org вот с этого сайта.
Теперь ругается на отсутствующие вызовы в userenv.dll. Этот тоже скачал, но пока не заменил. Хочу спросить у сообщества, а эта QWT под Виндой у кого-нибудь работает? Какая версия Винды, какая версия библиотеки, какая версия Qt? Что-то мне кажется, не слишком эта штука кроссплатформенная. Возникает ощущение, что воюю дубиной с танком. Может кто посоветует что-то другое для построения графиков? Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 15:17 Выявил, что вызов, который не поддерживается USERENV.DLL, содержится в Qt в файле USERENV.H
За сим мучить QWT заканчиваю. Считаю, что игра не стоит свеч. Пробую QCustomPlot. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 15:29 Ну вот. 10 минут трудов и есть график. Всем советую. А QWT - забыть, как страшный сон:)
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: vbv от Май 13, 2017, 16:20 Ну не знаю.
У меня, под linux, все нормально собирается и работает. Может зверек ("QWT") под форточками не жизнеспособен. Еще раз повторюсь под линухами - на ура. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 13, 2017, 16:46 Ну не знаю. У меня, под linux, все нормально собирается и работает. Может зверек ("QWT") под форточками не жизнеспособен. Еще раз повторюсь под линухами - на ура. Да я так и подумал, что тут дело в совместимости версий. Может взял бы Qt младше 5.8, и у меня бы проблем не было. Явно что то не срастается между userenv.dll в текущей версии масдая и ожиданиями Qt userenv.h Но разбираться с этим надоело. Заказчик хочет, чтобы продукт работал под масдаем. QCustomPlot работает без проблем. А на QWT я убил два дня трудов. QCustomPlot в открытом коде и меня все устраивает. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 17, 2017, 22:56 Да всё способно. На 5.7.1 проверял.
Либу правильнее прописывать LIBS+= -LC:/Qt/Qwt-6.1.3/lib -lqwt если дебаг, то -lqwtd. Делов то... Как автоматизировать дебаг/релиз см. здесь http://stackoverflow.com/questions/1130106/linking-with-a-debug-release-lib-with-qmake-qt-creator Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Racheengel от Май 18, 2017, 11:41 Никогда особых проблем с QWT под вендой не было... ЧЯДНТ?
Важно только собрать QWT с той же версией QT. И да, лучше статически. Тогда точно уж взлэтыт. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 18, 2017, 13:19 И да, лучше статически. Тогда точно уж взлэтыт. Вот это важно. Где вы были неделю назад?:) Я уже на на QCustomPlot все написал и оттестировал:) Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 18, 2017, 21:09 Статически или динамически не влияет на успех линковки, ИМХО
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 20, 2017, 15:45 Статически или динамически не влияет на успех линковки, ИМХО У меня все проблемы были связаны с отсутствием в windows/system32 различных DLL файлов. Я вынужден был их туда добавить 28 штук. И в итоге заткнулся на том, что очередной DLL файл не содержал нужного вызова, а заменить его мне не разрешила ОС. Я конечно знаю способ, как заменять такие файлы, но вся эта возня мне порядком надоела. Если линковка была бы статической. библиотека QWT содержала бы в себе все необходимое и добавлять в SYSTEN32 ничего бы не пришлось. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: __Heaven__ от Май 20, 2017, 22:26 Обычно библиотеки вне дистрибутивов не в system32 добавляются, а в папку с программой, имхо. У меня могут быть по сути 4 версии qwt. Скомпиленная mingw, скомпиленная msvc, а ещё она может быть скомпилена с использованием qt5 или qt4
Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Ced от Май 21, 2017, 10:49 Обычно библиотеки вне дистрибутивов не в system32 добавляются, а в папку с программой, имхо. У меня могут быть по сути 4 версии qwt. Скомпиленная mingw, скомпиленная msvc, а ещё она может быть скомпилена с использованием qt5 или qt4 И статическая сборка автоматом решила бы эту проблему. Каждая библиотека содержала бы все, что нужно для ее использования и в SYSTEM32 никто бы не лез. Название: Re: Прошу помощи по настройке для работы с QWT Отправлено: Igors от Май 21, 2017, 10:59 И статическая сборка автоматом решила бы эту проблему. Каждая библиотека содержала бы все, что нужно для ее использования и в SYSTEM32 никто бы не лез. Именно этим статическая сборка и привлекает новичков, типа "собрал один раз - и меня ничто не волнует!". Но потом выясняется что сборку придется повторять и повторять при каждом изменении базовых либов (хотя бы того же Qt). Рано или поздно все скатываются в "динамику" У меня все проблемы были связаны с отсутствием в windows/system32 различных DLL файлов. Я вынужден был их туда добавить 28 штук. Что-то явно "не то", ну даже если все добавите - что делать на машине заказчика? С QWT не работал, но попробовал бы "вцепиться" в первую либу что пришлось добавить и разобраться почему. Если не указано в "dependencies" - то ничего добавлять не нужно. С либой обычно идут примеры - они проходят? |