gnuplot: почему gnuplot_qt не запускается на некоторых ПК? - PullRequest
5 голосов
/ 12 апреля 2019

У меня есть скрипт gnuplot, который отлично работает на ПК с Win7 и Win10.

set term wxt size 400,400
...

Однако, если я переключаюсь на терминал qt, он отлично работает на некоторых компьютерах, но на других я получаю сообщения об ошибках.

set term qt size 400,400
...

enter image description here

enter image description here

Сообщение об ошибке предлагает переустановить приложение?Какое приложение?Какой плагин платформы Qt?Я работаю с gnuplot 5.2.6 и просто распаковал gnuplot из файла gp526-win64-mingw.7z из https://sourceforge.net/projects/gnuplot/files/gnuplot/5.2.6/

Что именно мне нужно переустановить, чтобы он работал везде?

Дополнение: Еще несколько выводов.

На тех ПК, на которых не работали qt-терминалы, я запускал gnuplot 5.2.6, однако, qt-терминалы работали сgnuplot 5.2.0 на тех же ПК.Возвращение к gnuplot 5.2.0 не является решением, потому что в нем нет некоторых функций, которые мне нужны.Некоторыми отличиями «рабочих» и «неработающих» ПК были распространяемые файлы Microsoft Visual C ++.На некоторых ПК установлены версии 2008,2010,2012,2013 и 2015.На новейших ПК с Win10 есть даже версия 2017 года, но нет версии 2015 года.Итак, мое текущее подозрение заключается в том, что для gnuplot 5.2.6 требуется версия 2015 года, тогда как gnuplot 5.2.0, вероятно, работает с версией 2013 года.Если это так, было бы неплохо, если бы gnuplot_qt.exe сказал мне, что отсутствует та или иная конкретная версия.

В настоящее время у меня нет доступа к этим компьютерам.Итак, дальнейшие тесты займут больше времени.

Ответы [ 3 ]

4 голосов
/ 02 мая 2019

Я никогда не использовал gnuplot, однако недавно я исправил проблемы с плагинами Qt.Из всплывающего окна видно, что плагин платформы найден (windows), но не может быть инициализирован.

Возможно, просто DLL-библиотека плагина как-то повреждена, или что несколько версий Qt доступны намашина, и по какой-то причине версия A пытается загрузить плагины из версии B (и терпит неудачу).

Часть Qt, которая загружает плагины, имеет некоторые встроенные выходные данные отладки. Я предлагаю вам попытаться включить выходные данные отладки иполучить дополнительную информацию об ошибке:

  1. Получить DebugView
  2. Включить вывод отладочных плагинов.Это можно сделать, установив переменную среды: SET QT_DEBUG_PLUGINS=1
  3. Запустите DebugView
  4. Запустите gnuplot из командной строки, в которой вы задали переменную
  5. Поиск сообщений от gnuplot вDebugView.Может быть некоторый шум в зависимости от того, что еще работает в системе.DebugView собирает выходные данные из всех приложений, но вы можете легко фильтровать и выполнять поиск.

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

2 голосов
/ 02 мая 2019

Сложно сказать без минимального кода. Но похоже, что вы не правильно развернули свое приложение. 1) вы должны использовать инструмент windeployqt для создания распространяемой сборки. 2) вам необходимо правильно настроить ваше приложение с помощью config: qt.conf. Спросите, нужна ли вам дополнительная помощь.

P.S. Я получил очень сложную ошибку, когда установил qt и распространяемый qt на одном ПК. Я нашел ответ здесь .

0 голосов
/ 02 мая 2019

Несколько месяцев назад я столкнулся с подобными проблемами с другим программным обеспечением, которое использовало Qt в Windows.

У меня нет окончательного решения вашей проблемы, но это некоторые из шагов, которые я предпринял, чтобы решить проблему.

1.Убедитесь, что у вас чистые окна

Чтобы убедиться, что ваша конфигурация будет работать во всех версиях Windows, попробуйте настроить чистую установку без установленных сторонних зависимостей.

Иногда вам придетсяобнаружите, что вы установили несколько пакетов в прошлом, что делает вашу систему совместимой с программным обеспечением, которое вы используете.Чтобы избежать этого, попробуйте установить чистую версию, если вы планируете выпустить установку или установку, которая должна выполняться на разных компьютерах.

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

2.Найти недостающие зависимости

Я использовал DependencyWalker , чтобы найти недостающие dll, если таковые имеются в моей системе.

Создайте новую папку и извлеките файлы, которые вы только что загрузили.Откройте с DepencyWalker бинарные файлы, которые вы собираетесь запустить.

Это программное обеспечение сообщит вам, нужно ли устанавливать какие-либо сторонние библиотеки, отсутствующие в вашей системе (загрузите их для MinGw с этой страницы ).

Как правило, вы должны добавить все эти библиотеки в папку 'bin /'.

Помните, что некоторые библиотеки могут быть установлены в одной системе, а не в других из-за другой версии Windows, которую они используют.

Если DependencyWalker больше не жалуется, заархивируйте папку и попробуйте запустить ее в других системах.

3.Развертывание для установленной версии Qt

Qt предоставляет инструмент для копирования всех зависимостей из Qt, которые необходимы для правильной работы двоичного файла.

Средство развертывания Windows windeployqt предназначено для автоматизации процесса создания развертываемой папки, содержащей зависимости Qt (библиотеки, импорт QML, плагины и переводы), необходимые для запуска приложения из этой папки.,Он создает «песочницу» для среды выполнения Windows или дерево установки для настольных приложений Windows, которое можно легко объединить в установочный пакет.

После установки Qt попробуйте запустить этот инструмент во всех двоичных файлах для замены./ обновляет зависимости Qt, чтобы исправить проблемы с плагинами Qt.

...