28

在 Fedora 10 上编译。

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

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

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

感谢您的任何建议,

4

3 回答 3

46

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

  1. 环境中未设置 DISPLAY。
    解决方案

    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. 
    
于 2009-03-14T23:42:15.193 回答
5

此外,如果您希望您的 X 服务器能够通过 TCP 接收连接,那么这些天您几乎总是必须显式启用它。要测试您的服务器是否允许远程 TCP 连接,请尝试:

远程登录 127.0.0.1 6000

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

于 2009-03-15T00:18:53.233 回答
2

添加到上述答案。在 travis运行Code2Pdf测试时,我也遇到了类似的情况。我使用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 代码风格。我是一个菜鸟 bash 程序员。

运行上面的脚本对我有帮助。您可以看到失败的构建通过的构建

希望能帮助到你

于 2016-04-05T20:39:10.800 回答