
ソースから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
configure
LIBDRM
ライブラリが見つからないというエラーが発生し続けます。
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
LDFLAGS
env変数を試してみましたが、成功しませんでした。
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
これを行う必要があるかもしれませんが、-dev
libDRMパッケージをインストールすると問題が解決します。他のパッケージがインストールされていないエラーが発生する可能性があります。実行が完了するまで、必須-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
それ以外の場合、2番目のエラーが発生します。
configure: error: shared GLAPI required when building two or more of
the following APIs - opengl, gles1 gles2
に接続されていませんlibdrm
。これはlibgalpi
ランタイムを無効にしないでくださいconfigure
。