내 프로그램은 GUI가없는 서버 또는 데스크탑에서 실행할 수 있습니다. GUI를 표시 할 수있는 시스템에서 실행될 때 QApplication을 인스턴스화하고 서버에있을 때 QCoreApplication이 필요합니다.시스템이 QApplication (GUI 지원)을 인스턴스화 할 수 있는지 확인
이 응용 프로그램이 실패 : 나는 서버에서의 QApplication을 실체화 경우
는, 그 중 하나는 segfault 대신 QCoreApplication를 인스턴스화 나에게 기회를 말도없이 (적어도 그것은에 사용) 또는 오류 메시지와 출구를 표시 Qt 플랫폼 플러그인 "xcb"을 (를) 찾거나로드 할 수 없어 시작할 수 없습니다. 사용 가능한 플랫폼 플러그인은 다음과 같습니다 : linuxfb, 최소, 오프 스크린. 응용 프로그램을 다시 설치하면이 문제가 해결 될 수 있습니다.
심각하게?
현재 서버에서 프로그램을 실행할 때 -noGui 인수 만 전달합니다. 잘 작동하지만 시스템에서 QApplication을 사용할 수 있는지 여부를 감지하여이 인수를 제거 할 수 있습니다.
나는 이미 그 어딘가에 대한 답이있을 것이라고 확신하지만, 그것에 손을 대볼 수는 없다.
왜 플러그인을 확인하지 않습니까? – lpapp
플러그인은 시스템에 따라 다를 수 있으며 오 탐지 (false positive)를 유발할 수 있습니다. Qt를 사용하여 "코드는 한 번 작동하고 모든 곳에서 작동합니다"라고합니다. Qt 라이브러리에서 더 깨끗하고 표준적인 방법을 선호 하겠지만 그렇다고 최후의 해결책이 될 수 있습니다. – deck
실제로, 아니요, 사실 ifdef없이 프로그래밍 할 수 있습니다. – lpapp