Fedora 10でコンパイルします。
最初のqt GUIアプリケーションを開始しました。すべてのデフォルト設定を使用しました。
そのシンプルなフォーム。エラーなしで正常にビルドされます。しかし、アプリケーションを実行しようとすると。次のメッセージが表示されます。
Starting /home/rob/projects/qt/test1/test1/test1...
No protocol specified
test1: cannot connect to X server :0.0
アドバイスをありがとう、
この一般的な原因は次のとおりです。
環境でDISPLAYが設定されていません。
ソリューション:
export DISPLAY=:0.0
./myQtCmdHere
(ただし、このXは、どのXが接続しようとしているのかを示すため、障害のあるものではないようです。また、常に0.0とは限りませんが、ほとんどの場合はそうです)
Xアプリケーションを実行しようとしている非承認ユーザー
Solution(Xを所有するユーザー、つまり:自分自身)
xhost +local:root # where root is the local user you want to grant access to.
また、XサーバーがTCP経由で接続を受信できるようにしたい場合、最近ではほとんど常に明示的にこれを有効にする必要があります。サーバーがリモートTCP=接続を許可しているかどうかをテストするには:
telnet 127.0.0.1 6000
Telnetが接続できる場合、Xサーバーはリッスンしています。できない場合は、リモートXアプリケーションも使用できず、サーバーでリモートTCP接続を有効にする必要があります。
上記の回答に追加します。 travisで Code2Pdf のテストを実行しているときに、私は同様の状況にありました。 xvfb-run を使用して問題を解決しました。マンページから引用すると、
xvfb-runは、仮想Xサーバー環境内でコマンド(通常はXクライアント、または実行するクライアントのリストを含むスクリプト)を実行するタスクを簡素化するXvfb(1x)コマンドのラッパーです。
私が書いたスクリプトは次のとおりです。
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プログラマーです。
上記のスクリプトを実行すると助けになりました。 失敗したビルド および 成功したビルド を確認できます。
それが役に立てば幸い