X11 mit Xcode starten

sue!

Registriert
Thread Starter
Dabei seit
14.03.2006
Beiträge
4
Reaktionspunkte
0
Hi,
Ich muss im Rahmen meiner Studienarbeit ein Progrämmchen schreiben, das die X11 Library verwendet.
Wenn ich das Programm nun über Xcode builde und starten will bekomm ich folgende Fehlermeldung:

cimg_test has exited due to signal 6 (SIGABRT).
[Session started at 2006-03-24 08:11:11 +0100.]
ZeroLink: unknown symbol '_XOpenDisplay'


So wie ich das sehe, wird das Standardterminal gestartet und nicht X11! Und deshalb können die X11 Befehle nicht aufgelöst bzw. verwendet werden.

Nach ein wenig googlen hab ich folgenden Workaround über die Konsole gefunden:

g++ cimg_test.cpp -o cimg_test -lX11 -lpthread -L/usr/X11R6/lib -L/usr/utilities/X11

Außerdem habe ich herausgefunden, daß man irgendwie Xcode über die "environment variables" beibringen kann, X11 zuverwenden, was natürlich komfortabler wär.

Aber ich war erfolglos welche Umgebungsvariable/Parameter ich da eintragen muss.

Kann mir irgendeiner da weiterhelfen.

Mfg

Sue!
 
Wenn Du Programme schreibst, die X11 als Display verwenden, dann müssen diese einen bereits laufenden X-Server vorfinden. Der wird im Allgemeinen nicht eigens gestartet. Einige Mac OS Programme (z.B. OpenOffice) prüfen, ob einer läuft und starten ihn dann bei Bedarf, aber das ist eine Besonderheit unter Mac OS X.

sue! schrieb:
Nach ein wenig googlen hab ich folgenden Workaround über die Konsole gefunden:

g++ cimg_test.cpp -o cimg_test -lX11 -lpthread -L/usr/X11R6/lib -L/usr/utilities/X11

Was Du da als Workaround beschreibst, ist die zwingend notwendige Anweisung für den Linker, die X11 Bibliothek zu binden. Ohne die geht es natürlich nicht. Das ist der Grund für das "unknown symbol" ;) Google mal nach einem X11-Programmier-Tutorial.

Noch ein paar Anmerkungen:

- Du kannst die Datei "/usr/X11/lib/libX11.a" in die XCode-Leiste hineinziehen; dann wird sie mitgelinkt.

- probier mal, die POSIX-Thread-Library ("-lpthread") auszulassen; das sollte zumindest XCode von alleine kapieren.

-"/usr/utilities/X11" ist mir unbekannt / existiert nicht bei mir. Lass das auch mal weg.

Das Einzige, was ich mir im Zusammenhang mit Environment-Variablen in XCode vorstellen kann, ist die Verwendung der DISPLAY-Variable, die man setzt, um X-Clients anzuweisen, ein gegebenes Display (z.B. auf einem anderen Rechner) zu verwenden. Damit dürfest Du bei Deinem Projekt allerdings nicht in Berührung kommen.

Wenn Deine Programme im Rahmen der Studienarbeit unter Linux / UNIX laufen, stell einfach sicher, dass X11 im Tiger läuft und gut is´ :)
 
Zuletzt bearbeitet:
Zurück
Oben Unten