derleme hatası: kütüphane yüklendi (apt-cache policy bunu gösteriyor) ancak pkg-config bulamadı


1

Üzgünüm, gcc ve kaynağından paket yükleme konusunda deneyimli değilim ve sorunumu çözemiyorum:

Ncmpcpp'i kaynaktan ( github ) Ubuntu 14.04'e yüklemeye çalışıyorum (bunun nedeni görselleştiricilerin 0.7.1 sürümünde renkli olması).

Daha önce mpd'yi yükledim ve depodan ncmpcpp (sürüm 0.5.10) çok çalıştı.

Şimdi kurulum adımlarım (apt-get ile ncmpcpp kaldırıldıktan sonra):

git clone https://github.com/arybczak/ncmpcpp
cd ncmpcpp
./autogen.sh

Aldığım hata:

configure: error: libmpdclient >= 2.8 is required!

Ancak, işte sonucudur apt-cache policy libmpdclient2:

libmpdclient2:
  Installé : 2.9-1ubuntu1
  Candidat : 2.9-1ubuntu1
 Table de version :
 *** 2.9-1ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages
        100 /var/lib/dpkg/status

Bazı googling sonra, bu komutu denedim ldconfig -p | grep mpdclient:

libmpdclient.so.2 (libc6,x86-64) => /usr/lib/libmpdclient.so.2

Ancak aslında pkg-config'nin bulamadığını doğrulayabilirim:

$ pkg-config --exists --print-errors "libmpdclient2"

Package libmpdclient2 was not found in the pkg-config search path.
Perhaps you should add the directory containing `libmpdclient2.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libmpdclient2' found

Denemek "libmpdclient"aynı döndürür.

Bilgisayarımı kullanarak aradım sudo find / -name "libmpdclient2.pc"ve hiçbir şey çıkmadı.

Eğer (Sentaksı bana yabancı) configure.ac dosyasını okurken, bunu görmek ve kontrol eder acaba libmpdclientya libmpdclient2:

dnl ==============================
dnl = checking for libmpdclient2 =
dnl ==============================
PKG_CHECK_MODULES([libmpdclient], [libmpdclient >= 2.8], [
    AC_SUBST(libmpdclient_CFLAGS)
    AC_SUBST(libmpdclient_LIBS)
    CPPFLAGS="$CPPFLAGS $libmpdclient_CFLAGS"
    AC_CHECK_HEADERS([mpd/client.h],
        LIBS="$LIBS $libmpdclient_LIBS"
    ,
        AC_MSG_ERROR([missing mpd/client.h header])
    )
],
    AC_MSG_ERROR([libmpdclient >= 2.8 is required!])
)

Uzun yazı için özür dilerim, ipucu yok. Bunun Ubuntu kullanıcıları yerine Archlinux kullanıcıları için bir paket olduğu hissine sahibim ama çok hoşuma gitti!


3
Benim tahminim , sonek sürümüne libmpdclient-devbakılmaksızın pakete ihtiyacınız var2
Steeldriver

1
Evet bu! Önce düşünmeliydim ... teşekkürler. Benzer şekilde yüklemek zorunda kaldımlibncursesw5-dev
PlasmaBinturong

1
@steeldriver OP tahmininizin işe yaradığını onayladığından, onu bir cevaba dönüştürmeyi düşünmelisiniz. :)
Byte Commander

Yanıtlar:


4

Genellikle, Ubuntu ambalajlama şemasında, bir kütüphane ( yazılım dosyaları ve varsa pkg-config dosyaları dahil) kullanarak yazılım geliştirmek için gerekli olan .pcdosyalar çalışma zamanı kitaplığından ayrılır ve ayrı bir paket olarak sunulur.

Çoğu zaman bu paket çalışma zamanı kitaplığı paketiyle aynı adı -devtaşır; örneğin bir sonek

libgimp2.0 - Libraries for the GNU Image Manipulation Program
libgimp2.0-dev - Headers and other files for compiling plugins for GIMP

ancak bu durumda, karşılık gelen geliştirme paketinin libmpdclient2basitçe olduğu görülmektedir libmpdclient-dev:

$ apt-cache policy libmpdclient2
libmpdclient2:
  Installed: (none)
  Candidate: 2.9-1ubuntu1
  Version table:
     2.9-1ubuntu1 0
        500 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

süre

$ apt-cache policy libmpdclient-dev
libmpdclient-dev:
  Installed: (none)
  Candidate: 2.9-1ubuntu1
  Version table:
     2.9-1ubuntu1 0
        500 http://ca.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

libmpdclient-devPaketi kurmak gerekli geliştirme dosyalarını sağlamalı ve pkg-configmutlu etmelidir , ancak doğru paket adını kullanmanız gerekir:

pkg-config --exists --print-errors libmpdclient
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.