对符号“XSetFillStyle”的未定义引用

对符号“XSetFillStyle”的未定义引用

当我收到此处显示的错误时,我正在尝试编译或制作 Esetroot。是否需要添加某种命令行参数来制作,头文件已经添加到c文件中,所以我不确定X11中缺少什么头文件。我的 X11-devel 和 imlib2-devel 已安装。

谢谢

%userx@voided Esetroot-20030422>$make
cc   -L/usr/lib -lImlib2 -DPIXMAP_SUPPORT -DHAVE_UNISTD_H -o Esetroot Esetroot.c
/usr/bin/ld: /tmp/ccug0Ak3.o: undefined reference to symbol 'XSetFillStyle'
/lib64/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:15: recipe for target 'Esetroot' failed
make: *** [Esetroot] Error 1

C文件中的头文件。

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/Xos.h>
#include <Imlib2.h>

答案1

XSetFillStyle函数位于 X11 库(也称为“Xlib”)中。

您的示例并未显示您使用 X11 库,例如,添加 a-lX11会有所帮助。 (某些配置需要额外的库):

cc  -DPIXMAP_SUPPORT -DHAVE_UNISTD_H -o Esetroot Esetroot.c -lImlib2  -lX11

相关内容