'XSetFillStyle'シンボルへの未定義参照

'XSetFillStyle'シンボルへの未定義参照

ここに示すエラーが発生したときにEsetrootをコンパイルまたは作成しようとしました。 makeに追加する必要のあるコマンドライン引数はありますか?ヘッダファイルはすでに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ライブラリの使用を示していません。たとえば、追加すると役に立ち-lX11ます。 (一部の構成には追加のライブラリが必要です):

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

関連情報