2013-04-03 12 views
5

Ich habe folgende Make-Datei:Verwendung von X11 in OSX 10.8.3: "ld: Bibliothek nicht für -lX11 gefunden"

PROG = draw 
CFLAGS = -w -s -O2 -ansi -DSHM 
XLIBS = -lX11 -lXext -lXmu -lXext -lXmu -lXt -lXi -lSM -lICE 
LIBS = -framework OpenGL 
INCLS = -I/usr/X11R/include -I/share/mesa/include 
LIBDIR = -L/usr/X11/lib -L/usr/X11R6/lib 
#source codes 
SRCS = draw_main.cpp $(PROG).cpp 
#substitute .cpp by .o to obtain object filenames 
OBJS = $(SRCS:.cpp=.o) 

#$< evaluates to the target's dependencies, 
#[email protected] evaluates to the target 

$(PROG): $(OBJS) 
    g++ -o [email protected] $(OBJS) $(LIBDIR) $(LIBS) $(XLIBS) 

$(OBJS): 
    g++ -c $*.cpp $(INCLS) 

clean: 
    rm $(OBJS) 

Jedes Mal, wenn ich versuche, es zu laufen lasse, erhalte ich folgende Fehlermeldung:

ld: library not found for -lX11 
collect2: ld returned 1 exit status 

Kann mir bitte jemand helfen, herauszufinden, wo die Bibliothek für X11 in OSX 10.8.3 sein soll? Für mich sieht das korrekt aus.

Vielen Dank im Voraus.

+0

Ich sollte hinzufügen, die Zeile: 'LIBS = -framework OpenGL' verwendet zu sein XLIBS = -lX11 -lXext -lXmu -lXext-lXmu-lXt-lXi-lSM-lICE', aber das gab mir noch mehr Fehler in OSX (obwohl es in Linux gut funktioniert) und ich lese, sollte ich 'framework OpenGL' stattdessen verwenden. – UndefinedReference

+0

Haben Sie in/usr/X11/lib nach libX11.so oder libX11.a gesucht? – parkydr

+0

@parkydr: Ich habe gerade jetzt gemacht und ich kann diese Datei ehrlich nicht sehen. Fehlt etwas in meiner X11-Installation? – UndefinedReference

Antwort

4

Haben Sie XQuartz installiert, wie hier vorgeschlagen: http://support.apple.com/kb/HT5293?

Standardmäßig gibt es bei Mountain Lion kein X11.

+1

Es kommt mit XCode. Aber ja, ich habe es gerade installiert. Jetzt sagt es mir, dass die "Symbole in x86 64 Architektur nicht erkannt werden" ... was bedeutet, dass ich die Sache noch schlimmer gemacht habe ... im Grunde frage ich mich, welche Datei ich suchen soll, um sie in der Makefile, um dieses Ding zum Laufen zu bringen. – UndefinedReference

+0

XCode und X11 sind zwei völlig verschiedene Dinge. Wenn Sie ein Unix-Programm basierend auf X11 auf Mountain Lion erstellen möchten, müssen Sie zunächst XQuartz installieren. Ich denke, Sie können es im 32-Bit- oder 64-Bit-Modus oder beidem aufbauen. Sie müssen sorgfältig über die Dinge lesen, fürchte ich. – piokuc

+0

Wirklich? Weil es aussah wie X11 war eine optionale Installation in XCode und die Ordner sind für mich da. Trotzdem schätze ich Ihre Hilfe und frage mich, ob ich nach der Installation von XQuartz nur diese Zeile in diesem Makefile 'LIBDIR = -L/usr/X11/lib -L/usr/X11R6/lib' an einen beliebigen Ort ändern muss XQuartz legt den X11-Ordner in? Vielen Dank. – UndefinedReference

Verwandte Themen