在Fedora 10上进行编译。
我刚刚开始了我的第一个qt GUI应用程序。我使用了所有默认设置。
它只是一个简单的形式。它构建正常,没有任何错误。但是当我尝试运行应用程序时。我收到以下消息:
Starting /home/rob/projects/qt/test1/test1/test1...
No protocol specified
test1: cannot connect to X server :0.0
感谢您的任何建议,
答案 0 :(得分:40)
一般原因如下:
DISPLAY未设置在环境中 解决方案:
export DISPLAY=:0.0
./myQtCmdHere
(这个似乎不是那个有问题的,因为它说X显示它试图连接到它。而且,它不总是0.0,但大部分时间都是)
< / LI>非授权用户试图运行X应用程序
解决方案(作为X拥有用户,即:您自己)
xhost +local:root # where root is the local user you want to grant access to.
答案 1 :(得分:5)
此外,如果您希望您的X服务器能够通过TCP接收连接,那么现在您几乎总是必须明确启用它。要测试您的服务器是否允许远程TCP连接,请尝试:
telnet 127.0.0.1 6000
如果telnet能够连接,那么您的X服务器正在侦听。如果不能,则任何远程X应用程序都不会在您的服务器上启用远程TCP连接。
答案 2 :(得分: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代码风格。我是一名菜鸟狂欢程序员。
运行上面的脚本帮助了我。 您可以看到failing build和passing build。
希望有所帮助