Debian에 Mesa3D 설치 - config autoconf가 LIBDRM을 찾을 수 없습니다

Debian에 Mesa3D 설치 - config autoconf가 LIBDRM을 찾을 수 없습니다

소스에서 mesa3D를 컴파일하고 설치하려고 합니다. (ftp://ftp.freedesktop.org/pub/mesa/11.0.0/mesa-11.0.0-rc3.tar.gz)

나는 계단 위에 configure있어요

./configure \
CXXFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
CFLAGS="-O2 -g -DDEFAULT_SOFTWARE_DEPTH_BITS=31" \
--disable-xvmc \
--disable-glx \
--disable-dri \
--with-dri-drivers="" \
--with-gallium-drivers="swrast" \
--enable-texture-float \
--disable-shared-glapi \
--disable-egl \
--with-egl-platforms="" \
--enable-gallium-osmesa \
--enable-gallium-llvm=yes \
--with-llvm-shared-libs \
--prefix=/opt/mesa/11.0.0/llvmpip

configureLIBDRM라이브러리를 찾을 수 없다는 오류가 계속 발생합니다.

checking for LIBDRM... no
configure: error: shared GLAPI required when building two or more of
                      the following APIs - opengl, gles1 gles2

도서관이 유명하긴 하지만ldconfig

ldconfig -p | grep drm
libdrm_radeon.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_radeon.so.1
libdrm_radeon.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_radeon.so
libdrm_nouveau.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so.1
libdrm_nouveau.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_nouveau.so
libdrm_intel.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1
libdrm_intel.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm_intel.so
libdrm.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm.so.2
libdrm.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libdrm.so

LDFLAGSenv 변수를 사용해 보았지만 성공하지 못했습니다.

LDFLAGS='-L/usr/lib/x86_64-linux-gnu/' ./configure <my configure parameters here>

또는

export LDFLAGS="-L/usr/lib/x86_64-linux-gnu/" && ./configure <my configure parameters here> 

이것은 이 오류를 생성하는 구성 스크립트의 일부입니다.

# Check for libdrm

pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBDRM" >&5
$as_echo_n "checking for LIBDRM... " >&6; }

if test -n "$LIBDRM_CFLAGS"; then
    pkg_cv_LIBDRM_CFLAGS="$LIBDRM_CFLAGS"
 elif test -n "$PKG_CONFIG"; then
    if test -n "$PKG_CONFIG" && \
    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdrm >= \$LIBDRM_REQUIRED\""; } >&5
  ($PKG_CONFIG --exists --print-errors "libdrm >= $LIBDRM_REQUIRED") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
  pkg_cv_LIBDRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm >= $LIBDRM_REQUIRED" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
else
  pkg_failed=yes
fi
 else
    pkg_failed=untried
fi

이 문제를 해결하기 위한 몇 가지 제안이나 팁을 제공해 주실 수 있나요?

감사해요

답변1

표시된 라이브러리는 ldconfig런타임 연결을 위한 것입니다. 컴파일에는 추가 기호 링크(및 대부분의 경우 헤더 파일)가 필요합니다. 이 경우에는 추가 패키지를 설치해야 libdrm-dev합니다 -dev.

당신은 찾을 수 있습니다조리대 만드는 방법유용합니다. Debian의 소스에서 Mesa를 빌드하는 방법을 자세히 설명합니다.

답변2

런타임 라이브러리는 설치되었지만 귀하의 의견에 대한 응답으로 개발 패키지는 설치되지 않았습니다. 이는 오류가 ./configure발생하는 이유입니다. 정확한 패키지 이름이 확실하지 않으므로 apt-cache search이에 대한 조치를 수행 해야 할 수도 있지만 -devlibDRM 패키지를 설치하면 문제가 해결됩니다. 다른 패키지가 설치되지 않음 오류가 발생할 수 있습니다 . 실행이 완료될 때까지 -dev필수 -dev패키지 설치를 계속하세요../configure

답변3

Debian의 소스에서 Mesa3D를 설치하는 방법은 다음과 같습니다. 답변과 의견을 보내주신 모든 분들께 감사드립니다.

libdrm-dev먼저 패키지를 설치해야 합니다 .

# apt-get install libdrm-dev

그런 다음 헤더 및 lib 파일이 설치된 위치를 확인하십시오.

# dpkg-query -L libdrm-dev
...
/usr/include/libdrm/drm.h
...
/usr/lib/x86_64-linux-gnu/libdrm.a
...

그런 다음 configure링크를 libdrm(https://stackoverflow.com/questions/24644211/mesa3d-install-cant-find-libdrm)

# export LIBDRM_CFLAGS="-I/usr/include/libdrm/"
# export LIBDRM_LIBS="-L/usr/lib/x86_64-linux-gnu/"

마지막으로, configure, make그리고make install

# ./configure <parameters here>
# make -j24 # running on a 24 cores machine
# make -j24 install

그렇지 않으면 두 번째 오류가 발생합니다.

configure: error: shared GLAPI required when building two or more of
                  the following APIs - opengl, gles1 gles2

에 연결되어 있지 않습니다 libdrm. 이는 libgalpi런타임을 비활성화하면 안 되기 때문입니다 configure!

관련 정보