Программа с графическим интерфейсом запускается из терминала, но не из программы запуска

У меня есть хорошая программа с графическим интерфейсом, которая отлично работает, если я запускаю ее из терминала, но вообще не запускается, если я запускаю ее из нетерминальной программы запуска -, например dmenuили gmrun. Каждый раз, когда я это делаю, ничего заметного не происходит (ни на экране, ни в журнале ), но мертвый зомби-процесс — единственный след, который я вижу до сих пор. Я также попробовал несколько возможных команд , чтобы запустить его из 9меню , где я использую /bin/bash в качестве оболочки для запуска команды. В настоящее время я застрял и задаюсь вопросом, где искать дальше возможное решение.

Поскольку программа отлично работает с терминала, я предполагаю, что это не имеет ничего общего с моей, по общему признанию, нетрадиционной и устаревшей настройкой? Где я должен искать в первую очередь, wxWidgets, локаль, …?

Это моя среда:

  • Debian 3.2.102 -1 i686 GNU/Linux
  • Программа с графическим интерфейсом:листы деревьев(скомпилировал сам с помощью wxWidgets 3.1.4)
  • Диспетчер окон :Пробовал с dwm и 2bwm

Любая подсказка будет полезна!

0
22.05.2020, 23:05
1 ответ

Я мог бы найти решающую подсказку, проверив выполнение команды древовидных листов , что приводит к зомби-процессу с использованием strace. Фактически, я наткнулся на ту же проблему с другой программой на C++.

Основная причина довольно распространена и была обнаружена в strace журнале :путь к библиотеке для libstdc++.so.6 был неправильным (устаревшим ). Запустить программу из оболочки не составило труда, потому что там у меня была переменная среды LD_LIBRARY_PATH, которая включает путь /usr/local/libк моей обновленной ручной установке glibc. Но этой среды не было при запуске команды .xsession.

Итак, чтобы решить мою проблему

  • либо добавьте LD_LIBRARY_PATH=/usr/local/libк команде в.xsession
  • добавить правильный флаг связывания во время процесса сборки в Makefile (, например. добавить -Wl,-rpath=/usr/local/lib,--enable-new-dtagsвLDFLAGS(в случае проекта CMake :добавить set(CMAKE_INSTALL_RPATH "/usr/local/lib")в CMakeLists.txt)
0
28.04.2021, 23:13

Теги

Похожие вопросы