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接続を許可しているかどうかをテストするには、次のことを試してください。

telnet 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コードスタイルにご容赦ください。私はnoob bashプログラマーです。

上記のスクリプトを実行すると役に立ちました。失敗したビルド成功したビルドを確認できます。

それが役に立てば幸い

于 2016-04-05T20:39:10.800 に答える