Evince 2.28.1 컴파일 도중

Making all in pdf
make[3]: Entering directory /home/user/1/evince-2.28.1-mod1/backend/pdf' CXX ev-poppler.lo ev-poppler.cc: In function ‘cairo_surface_t* pdf_page_render(PopplerPage*, gint, gint, EvRenderContext*)’: ev-poppler.cc:529: error: ‘poppler_page_render_to_pixbuf’ was not declared in this scope ev-poppler.cc: In function ‘GdkPixbuf* pdf_document_thumbnails_get_thumbnail(EvDocumentThumbnails*, EvRenderContext*, gboolean)’: ev-poppler.cc:1430: error: ‘poppler_page_get_thumbnail’ was not declared in this scope ev-poppler.cc: In function ‘void pdf_selection_render_selection(EvSelection*, EvRenderContext*, cairo_surface_t**, EvRectangle*, EvRectangle*, EvSelectionStyle, GdkColor*, GdkColor*)’: ev-poppler.cc:1911: error: ‘poppler_page_render_selection_to_pixbuf’ was not declared in this scope make[3]: *** [ev-poppler.lo] 오류 1 make[3]: Leaving directory /home/user/1/evince-2.28.1-mod1/backend/pdf’

PDF를 지원하도록 컴파일하고 싶은데 상황이 이래서 하지를 못하고 있습니다.
poppler 잘 빌드한 것 같은데 왜 이런 오류가 나는 것인지요…?

poppler를 잘 컴파일했다고 하셨는데
어디에 설치하셨나요?
표준 디렉토리 아닌 다른 곳에 설치해 두셨으면 당연히 그런 에러가나게 마련입니다.

왜 표준 디렉토리에 설치 않으시고 늘 다른데 설치하시는지 알수 없지만
스스로 poppler를 다른데 설치해 놓은 걸 알고 있다면
마땅히 evince configure 할때 그 다른 위치를 인식하도록
조치를 하셔야지요.

보통의 경우 evince configure는 다음과 같은 형태로
poppler를 찾습니다.

제일 먼저 pkg-config --exists poppler-glib 을 실행해서
poppler-glib 이 설치됐는지 체크합니다.

체크 결과 설치됐으면
pkg-config --cflags poppler-glib 을 실행해서

-D_REENTRANT -I/usr/include/poppler/glib -I/usr/include/poppler -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12

evince 컴파일에 필요한 cflags와 poppler-glib 헤더 등의 파일 위치를 찾고

pkg-config --libs poppler-glib 을 실행해서

-lpoppler-glib -lgdk-x11-2.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
evince 컴파일에 필요한 라이브러리 들을 찾은 뒤에

POPPLER_CFLAGS
POPPLER_LIBS

환경변수로 세팅합니다.

그래서 pkg-config으로 못찾게 다른 디렉토리에 poppler를 설치했다면
POPPLER_CFLAGS
POPPLER_LIBS
환경변수를 미리 자신의 디렉토리로 세팅한뒤 configure해주면 됩니다.

예를 들어서 POPPLER_CFLAGS=" bla bla" POPPLER_LIBS="bla bla" ./configure --prefix=/usr --enable-pdf

이렇게 세팅된 환경변수는 pkg-config 의 결과값에 우선해서
적용되지요.