2009-12-31 2 views
20

Я использую GCC, какие ключи мне нужно добавить к ссылке с Xlib? После поиска, все, что я мог найти, было -lX11, но это дало мне ld: library not found for -lX11Что мне нужно сделать, чтобы связаться с xlib?

Я использую mac (10.6), но мне не понравилось бы что-нибудь, что специфично для Mac.

ответ

32

Вы можете обычно использовать pkg-config для определения флагов, которые необходимо пройти:

gcc my-program.c $(pkg-config --cflags --libs x11) -o my-program 
+0

Эй! Я не знал, что это было. И мне всегда нравилось такое средство, когда отдельные программы его поставляли (например, «root-config» с http://root.cern.ch/). – dmckee

+0

Хммм ... мой, кажется, поставляется fink (на Mac OS 10.5). – dmckee

+12

+1: Мне нравятся ответы, когда кто-то просит рыбу и получает удочку в ответ :) –

2

Вам также понадобится -L/usr/X11/lib. Это не совсем специфично для Mac, но вы обнаружите, что расположение этих библиотек будет немного отличаться от системы к системе.

4
$ locate libX11 
/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib/libX11.6.2.dylib 
/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib/libX11.6.dylib 
/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib/libX11.a 
/Developer/SDKs/MacOSX10.4u.sdk/usr/X11R6/lib/libX11.dylib 
/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libX11.6.2.0.dylib 
/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libX11.6.dylib 
/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/libX11.dylib 
/usr/X11/lib/libX11.6.2.0.dylib 
/usr/X11/lib/libX11.6.dylib 
/usr/X11/lib/libX11.dylib 
/usr/X11/lib/libX11.la 

Я хотел бы попробовать

gcc [...] -L/usr/X11/lib -lX11 [...] 

установить путь поиска для библиотек.

3

Вы будете удивлены, но иногда -L/usr/X11R6/lib -lX11is ответ -_-.

1

Ubuntu 12,10 (и, возможно, другие) требуют sudo apt-get install libx11-dev.