Gtk-WARNING **: cannot open display:
-
Hallo!
Ich versuche, ein einfaches Programm mit GTKMM auszuführen. Das Programm compiliert, aber wenn ich es ausführe, bekomme ich folgende Fehlermeldung:
Gtk-WARNING **: cannot open display:
Ich arbeite über SSH auf einem remote computer (linux)
Hier ist der c++ Code:
#include <gtkmm/main.h>
#include <gtkmm/window.h>int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);Gtk::Window window;
Gtk::Main::run(window);
return 0;
}Makefile:
OBJS = main.o
CC = g++
LD = g++
CC_FLAGS = -c -g -Wall `pkg-config --cflags gtkmm-2.4`
LD_FLAGS = -o $(EXECUTABLE) `pkg-config --libs gtkmm-2.4`
EXECUTABLE = minimini: (LD) $(LD_FLAGS) $(OBJS)
main.o: main.cpp
$(CC) $(CC_FLAGS) main.cppall: mini
clean: rm $(OBJS) $(EXECUTABLE)
beim ausführen mit
$ ./mini
bekomme ich
(mini:27421): Gtk-WARNING **: cannot open display:
-
Das Programm weiß nicht, auf welchem Display es sich anzeigen soll. Solltest du mit der "DISPLAY"-Variable beheben können... siehe hier: http://www.linuxquestions.org/questions/showthread.php?p=2395576#post2395576
Läuft auf der Kiste eigentlich 'n X11-Server?
-
hallo, danke für die antwort!
ja, X11 läuft!
wie genau mache ich das mit der display variable in meinem code?
vielen dank, bin ein völliger anfänger...
-
Gar nicht im Code, das tippst du in die shell ein.
-
Was genau muss ich in die shell eingeben?
Ich hab das vom obigen link probiert und es hat nicht geklappt...
-
Okay, tipp zuerst folgendes ein: echo $DISPLAY
Den Wert brauchst du gleichDann als root folgendes: xauth merge ~benutzername/.Xauthority
"benutzername" ist durch deinen Usernamen zu ersetzenZum Schluß kommt: export DISPLAY=:0.0
Wobei :0.0 der Wert ist, den du vom ersten Befehl bekommen hast. Insofern... was auch immer dir echo $DISPLAY liefert, das ist es, was du im letzten Befehl dann auch angeben musst.
-
Danke, ich hab das versucht, jetzt bekomme ich:
xauth: creating new authority file /home/students/l0325406/.Xauthority
xauth: (argv):1: merge: unable to open file /home/students/l0325406/.Xauthority
-
Hast du's auch als root gemacht? Wie im Link angegeben brauchst du root-rechte für den Spaß.