여기에 표시된 오류가 발생했을 때 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