Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 无法使用Qt应用程序连接到X服务器:0.0_Linux_Qt_X11 - Fatal编程技术网

Linux 无法使用Qt应用程序连接到X服务器:0.0

Linux 无法使用Qt应用程序连接到X服务器:0.0,linux,qt,x11,Linux,Qt,X11,在Fedora 10上编译 我刚刚启动了我的第一个QtGUI应用程序。我使用了所有的默认设置 这只是一个简单的形式。它构建得很好,没有任何错误。但是当我尝试运行应用程序时。我得到以下信息: Starting /home/rob/projects/qt/test1/test1/test1... No protocol specified test1: cannot connect to X server :0.0 感谢您的建议,造成这种情况的一般原因如下: 未在环境中设置显示。 解决方案: ex

在Fedora 10上编译

我刚刚启动了我的第一个QtGUI应用程序。我使用了所有的默认设置

这只是一个简单的形式。它构建得很好,没有任何错误。但是当我尝试运行应用程序时。我得到以下信息:

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

感谢您的建议,

造成这种情况的一般原因如下:

  • 未在环境中设置显示。
    解决方案

    export DISPLAY=:0.0
    ./myQtCmdHere
    
    (不过,这一个似乎不是问题所在,正如它所说的,X显示它试图连接到哪个。此外,它并不总是0.0,但大多数情况下都是)

  • 试图运行X应用程序的非授权用户
    解决方案(作为拥有X的用户,即:您自己)


  • 此外,如果您希望您的X服务器能够通过TCP接收连接,那么现在您几乎必须始终显式地启用此功能。要测试您的服务器是否允许远程TCP连接,请尝试:

    telnet 127.0.0.1 6000

    如果telnet能够连接,那么您的X服务器正在侦听。如果不能,那么任何远程X应用程序也不能,您需要在服务器上启用远程TCP连接。

    添加上述答案。 我在特拉维斯进行测试时也遇到了类似的情况。 我用计算机解决了这个问题。引用主页上的话

    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代码风格。我是一个noobbash程序员

    运行上面的脚本对我有帮助。 你可以看到和


    希望有帮助

    只是快速跟进。这是做什么的:export DISPLAY=:0.0,为什么我的应用程序会因此失败?谢谢,您的显示界面运行的是服务器-客户端模式。DISPLAY告诉应用程序屏幕的位置,通常是IP:DISPLAY.screen格式,但如果没有IP,则使用localhost。但在适当的条件下,您可以在任何网络可访问的显示器上“抛出”和应用程序。
    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.