2012-07-03 7 views
7

Widzę dziwny problem z pkg-config na Mac OSX-Lion. Po uruchomieniu programu konfiguracji Pythona do modułu, który pobrałem I pojawia się następujący błąd:pkg-config nie może znaleźć plików .pc, chociaż znajdują się one na ścieżce

aspen:python toddysm$ sudo ./setup.py install 
Password: 
`pkg-config --libs --cflags cld` returns in error: 
Package cld was not found in the pkg-config search path. 
Perhaps you should add the directory containing `cld.pc' 
to the PKG_CONFIG_PATH environment variable 
No package 'cld' found 

The `cld` C++ library is absent from this system. Please install it. 

Jednak podczas sprawdzania w katalogu/usr/local/lib widzę bibliotekami i plik .pc jest w podfolderze pkgconfig

aspen:~ toddysm$ cd /usr/local/lib/ 
aspen:lib toddysm$ ls -al 
total 2640 
drwxr-xr-x 6 root wheel  204 Jul 2 17:38 . 
drwxr-xr-x 9 root wheel  306 Jul 2 15:17 .. 
-rwxr-xr-x 1 root wheel 1339516 Jul 2 17:38 libcld.0.dylib 
lrwxr-xr-x 1 root wheel  14 Jul 2 17:38 libcld.dylib -> libcld.0.dylib 
-rwxr-xr-x 1 root wheel  918 Jul 2 17:38 libcld.la 
drwxr-xr-x 3 root wheel  102 Jul 2 17:38 pkgconfig 
aspen:lib toddysm$ cd pkgconfig/ 
aspen:pkgconfig toddysm$ ls -al 
total 8 
drwxr-xr-x 3 root wheel 102 Jul 2 17:38 . 
drwxr-xr-x 6 root wheel 204 Jul 2 17:38 .. 
-rw-r--r-- 1 root wheel 279 Jul 2 17:38 cld.pc 

Ustawienie PKG_CONFIG_PATH tak, aby wskazywało/usr/local/lib/przy użyciu wiersza poleceń, nie pomaga. Ustawienie go w ~/.bash_profile z jakiegoś powodu czyni pkg-config nierozpoznawalnym jako polecenie.

Moje założenie jest takie, że brakuje mi pewnej zależności, ale nie jestem pewien co. Kiedy próbowałem tego samego na Linuksie, brakowało mi pakietu Python Dev python2.7-dev, ale nie wiem, jak to sprawdzić na Macu (czy jest tam, czy nie).

Każda pomoc zostanie doceniona.

Odpowiedz

19

Można listy katalogów pkg-config wygląda w domyślnie przy użyciu:

pkg-config --variable pc_path pkg-config 

PKG_CONFIG_PATH potrzebuje pełnego /usr/local/lib/pkgconfig ścieżki dołączany do zmiennej.

+0

Oto pełne brzęczenie z polecenia wspomniano powyżej. Wygląda na to, że cld.cp znajduje się w ścieżce pkg_config, ale błąd jest mylący: – toddysm

+0

Tutaj link do spewu: http://pastebin.com/2Qv4Y3p4 – toddysm

+0

@ Brett Hale, Nie wiedziałem, że możesz zapytać o wartości domyślne. Tak, strona man ma wszystko. Dzięki! –

1

Wygląda na to, że chociaż PKG_CONFIG_PATH został poprawnie ustawiony, skrypt Pythona go nie podniósł. Patrząc na skrypt uruchamia pkg-config w podprocesie i nie jestem pewien, czy informacje o zmiennej środowiskowej są przekazywane do podprocesu. Mimo to rozwiązałem problem, kopiując biblioteki i plik .cp do/opt/local/lib /, który jest domyślnym folderem, w którym wygląda pkg-config.

8

Zmienne środowiskowe muszą być export "ed użyteczne dla poleceń. Wypróbuj

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
$ pkg-config --libs --cflags cld 
Powiązane problemy