Не удается подключиться к X-серверу: 0.0 с приложением Qt - PullRequest
27 голосов
/ 15 марта 2009

Компиляция на Fedora 10.

Я только что запустил свое первое приложение с графическим интерфейсом qt. Я использовал все настройки по умолчанию.

Это просто простая форма. Он строит ОК без каких-либо ошибок. Но когда я пытаюсь запустить приложение. Я получаю следующее сообщение:

Starting /home/rob/projects/qt/test1/test1/test1...
No protocol specified
test1: cannot connect to X server :0.0

Спасибо за любой совет,

Ответы [ 3 ]

40 голосов
/ 15 марта 2009

Основные причины этого следующие:

  1. ДИСПЛЕЙ не установлен в окружающей среде.
    Решение :

    export DISPLAY=:0.0
    ./myQtCmdHere
    

    (Этот, похоже, не тот, кто виноват, так как он говорит, к какому X-дисплею он пытается подключиться. Кроме того, он не всегда 0.0, но в большинстве случаев это так) *

  2. Неавторизованный пользователь пытается запустить приложение X
    Решение (как владелец X, то есть вы сами)

    xhost +local:root   # where root is the local user you want to grant access to. 
    
5 голосов
/ 15 марта 2009

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

телнет 127.0.0.1 6000

Если telnet может подключиться, значит ваш X-сервер прослушивает. Если это невозможно, то ни одно удаленное приложение X не будет работать, и вам необходимо включить удаленные TCP-соединения на вашем сервере.

2 голосов
/ 05 апреля 2016

Добавление к ответам выше. Я был в подобной ситуации, когда проводил тесты для Code2Pdf на travis. Я решил проблему, используя xvfb-run . Цитата из справочника,

xvfb-run - это оболочка для команды Xvfb (1x), которая упрощает задачу выполнения команд (обычно это X-клиент или скрипт, содержащий список клиентов, которые нужно запустить) в среде виртуального X-сервера. *

Сценарий, который я написал, был:

check_install_xvfb() { # check and install xvfb
    if hash xvfb-run 2>/dev/null; then
        :
    else
        sudo apt-get update
        sudo apt-get upgrade
        sudo apt-get install xvfb
    fi
}
check_install_xvfb
export DISPLAY=localhost:1.0
xvfb-run -a bash .misc/tests.sh
# .misc/tests.sh is script that runs unit tests. You can replace it with something suitable to you.

Пожалуйста, имейте мой стиль кода bash. Я программист Noob Bash.

Запуск вышеуказанного скрипта мне помог. Вы можете увидеть сбойную сборку и проходящую сборку .

Надеюсь, это поможет

...