GUI 프로그램은 터미널에서 실행되지만 프로그램 실행기에서는 실행되지 않습니다.

GUI 프로그램은 터미널에서 실행되지만 프로그램 실행기에서는 실행되지 않습니다.

터미널에서 시작하면 잘 실행되는 멋진 GUI 프로그램이 있지만 dmenu또는 gmrun. 이 작업을 수행할 때마다 화면이나 일부 로그에서 관찰할 수 있는 일이 발생하지 않지만 지금까지 본 유일한 흔적은 죽은 좀비 프로세스뿐이었습니다. 나도 시도했다여러 가지 가능한 명령처음부터9가지 메뉴내가 어디에서 사용하나요?/bin/bash명령을 실행하는 쉘로. 현재 저는 막혀서 가능한 해결책을 찾기 위해 다음에 어디로 가야할지 궁금합니다.

프로그램이 터미널에서 잘 실행되기 때문에 이것이 내 틀에 얽매이지 않고 오래된 설정과는 아무런 관련이 없다고 생각합니까? wxWidgets, locale... 어디를 먼저 봐야 할까요?

내 환경은 다음과 같습니다.

  • 데비안 3.2.102-1 i686 GNU/리눅스
  • 그래픽 사용자 인터페이스 프로그램:나무 테이블(직접 컴파일하고 wxWidgets 3.1.4를 사용하세요)
  • 창관리자: 노력했어요데이터 관리그리고2bwm

어떤 팁이라도 도움이 될 것입니다!

답변1

명령어 실행을 확인해보면 결정적인 힌트를 찾을 수 있어요나무 테이블이로 인해 좀비 프로세스가 strace.

근본 원인은 일반적이며 다음으로 인해 발생합니다.스트레스로그: 라이브러리 경로libstdc++.so.6틀렸습니다(오래됨). LD_LIBRARY_PATHglibc 수동 설치에 대한 업데이트된 경로를 포함하는 환경 변수가 있으므로 셸에서 프로그램을 실행하는 데 문제가 없습니다 . /usr/local/lib그러나 이 환경은 명령을 실행할 때 존재하지 않습니다 .xsession.

그래서 내 문제를 해결하기 위해

  • LD_LIBRARY_PATH=/usr/local/lib명령에 추가하거나.xsession
  • 빌드 중에 Makefile에 올바른 링크 플래그를 추가하세요(예: 추가 -Wl,-rpath=/usr/local/lib,--enable-new-dtags( LDFLAGSCMake 프로젝트인 경우: set(CMAKE_INSTALL_RPATH "/usr/local/lib")CMakeLists.txt에 추가))

관련 정보