2013-04-03 15 views
5

Mam następujący makefile:Korzystanie X11 w OSX 10.8.3: "ld: biblioteki nie znaleziono -lX11"

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) 

Za każdym razem staram się go uruchomić, pojawia się następujący błąd:

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

Czy ktoś może mi pomóc dowiedzieć się, gdzie znajduje się biblioteka X11 na OS X 10.8.3? Dla mnie to wygląda na poprawne.

Z góry dziękuję.

+0

Powinienem dodać, że wiersz: 'LIBS = -framework OpenGL' był kiedyś' XLIBS = -lX11 -lXext -lXmu -lXext -lXmu -lXt -lXi -lSM -lICE', ale to dało mi jeszcze więcej błędów w OSX (chociaż działało dobrze w Linuksie) i czytałem, powinienem użyć 'framework OpenGL' zamiast tego. – UndefinedReference

+0

Szukałeś libX11.so lub libX11.a w/usr/X11/lib? – parkydr

+0

@parkydr: Właśnie zrobiłem to teraz i szczerze nie widzę tego pliku. Czy czegoś brakuje w mojej instalacji X11? – UndefinedReference

Odpowiedz

4

Czy zainstalowałeś XQuartz, jak zasugerowano tutaj: http://support.apple.com/kb/HT5293?

Domyślnie nie ma X11 na Mountain Lion.

+1

Pochodzi z XCode. Ale tak, zainstalowałem to właśnie teraz. Teraz mówi mi, że "symbole nie są rozpoznawane w architekturze x86 64", co oznacza, że ​​spieprzyłem sprawę jeszcze gorzej ... w zasadzie zastanawiam się, jakiego pliku powinienem szukać w makefile, aby to uruchomić. – UndefinedReference

+0

XCode i X11 to dwie zupełnie różne rzeczy. Jeśli chcesz zbudować uniksowy program oparty na X11 na Mountain Lion, musisz najpierw zainstalować XQuartz. Myślę, że możesz go zbudować w trybie 32-bitowym lub 64-bitowym lub obu. Musisz się dokładnie o tym czytać, obawiam się. – piokuc

+0

Naprawdę? Ponieważ wyglądało to tak, jakby X11 było opcjonalną instalacją w XCode i foldery są dla mnie. Jednak nadal doceniam twoją pomoc i zastanawiam się, czy po zainstalowaniu XQuartz muszę po prostu zmienić tę linię w tym makefile 'LIBDIR = -L/usr/X11/lib -L/usr/X11R6/lib' w jakiejkolwiek lokalizacji XQuartz umieszcza folder X11? Dziękuję Ci. – UndefinedReference

Powiązane problemy