与xlib链接需要做什么?

Jef*_*rth 22 c x11 gcc xlib

我正在使用GCC,我需要添加哪些开关才能与Xlib链接?搜索之后,我能找到的只是-lX11,但那给了我ld: library not found for -lX11

我正在使用mac(10.6),但我不喜欢Mac特有的任何东西.

Bri*_*ell 35

您通常可以pkg-config用来确定需要传递的标志:

gcc my-program.c $(pkg-config --cflags --libs x11) -o my-program
Run Code Online (Sandbox Code Playgroud)

  • +1:当有人要求钓鱼并获得钓竿时,我喜欢这些答案:) (13认同)
  • 我想指出这个答案在 ubuntu (gcc 4.6.1) 上对我不起作用。它将 -lX11 参数放在 -o 参数之前,并且由于 gcc 按照指定的顺序搜索目标文件和库,我仍然会收到“未定义引用”错误。另请参阅:[GCC 文档](http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gcc/Link-Options.html#Link-Options) (2认同)

dmc*_*kee 5

$ 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
Run Code Online (Sandbox Code Playgroud)

我会尝试

gcc [...] -L/usr/X11/lib -lX11 [...]
Run Code Online (Sandbox Code Playgroud)

设置库的搜索路径。


Kor*_*icz 5

你会感到惊讶,但有时答案-L/usr/X11R6/lib -lX11 是-_-。