2009-12-31 7 views
20

Tôi đang sử dụng GCC, tôi cần thêm công tắc nào để liên kết với Xlib? Sau khi tìm kiếm, tất cả những gì tôi có thể tìm thấy là -lX11, nhưng điều đó đã cho tôi ld: library not found for -lX11Tôi cần làm gì để liên kết với xlib?

Tôi đang sử dụng mac (10.6), nhưng tôi không thích bất kỳ thứ gì cụ thể cho Mac.

Trả lời

32

Bạn thường có thể sử dụng để xác định pkg-config cờ bạn cần phải vượt qua:

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

Hey! Tôi không biết nó ở đó. Và tôi luôn thích loại cơ sở đó khi các chương trình riêng lẻ cung cấp cho nó (ví dụ: 'root-config' với http://root.cern.ch/). – dmckee

+0

Hmmm ... mỏ dường như được cung cấp bởi fink (trên Mac OS 10.5). – dmckee

+12

+1: Tôi thích câu trả lời khi ai đó yêu cầu một con cá và lấy lại cần câu :) –

2

Bạn cũng cần -L/usr/X11/lib. Nó không chính xác với Mac, nhưng bạn sẽ thấy rằng vị trí của các thư viện này sẽ thay đổi một chút từ hệ thống này sang hệ thống khác.

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 

Tôi muốn thử

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

để thiết lập các đường dẫn tìm kiếm cho các thư viện.

3

Bạn sẽ ngạc nhiên, nhưng đôi khi -L/usr/X11R6/lib -lX11 câu trả lời -_-.

1

Ubuntu 12.10 (Và có lẽ những người khác) đòi hỏi sudo apt-get install libx11-dev.