2012-07-03 42 views
7

Tôi gặp sự cố lạ với pkg-config trên Mac OSX-Lion. Khi chạy setup python cho mô-đun mà tôi tải về tôi nhận được lỗi sau:pkg-config không thể tìm thấy tệp .pc mặc dù chúng nằm trong đường dẫn

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. 

Tuy nhiên khi kiểm tra trong thư mục local/lib/usr/Tôi thấy libs và file .pc là trong pkgconfig thư mục con

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 

Cài đặt PKG_CONFIG_PATH để trỏ tới/usr/local/lib/bằng cách sử dụng dòng lệnh không có tác dụng. Đặt nó thành ~/.bash_profile vì một số lý do khiến pkg-config không thể nhận ra được dưới dạng lệnh.

Giả định của tôi là tôi thiếu một số phụ thuộc nhưng không chắc chắn về điều gì. Khi cố gắng tương tự trên Linux tôi đã thiếu gói Python py python2.7-dev nhưng tôi không chắc chắn làm thế nào để kiểm tra cho điều này trên Mac (cho dù là có hay không).

Mọi trợ giúp sẽ được đánh giá cao.

Trả lời

19

Bạn có thể liệt kê các thư mục pkg-config trông theo mặc định sử dụng:

pkg-config --variable pc_path pkg-config 

PKG_CONFIG_PATH cần đầy đủ /usr/local/lib/pkgconfig tên đường dẫn nối vào biến.

+0

Đây là phần hoàn chỉnh từ lệnh bạn đã đề cập ở trên. Có vẻ như cld.cp được tìm thấy trong đường dẫn pkg_config nhưng lỗi gây hiểu nhầm: – toddysm

+0

Đây là liên kết tới spew: http://pastebin.com/2Qv4Y3p4 – toddysm

+0

@Brett Hale, Không biết bạn có thể truy vấn mặc định. Yup, trang người đàn ông có tất cả. Cảm ơn! –

1

Dường như mặc dù PKG_CONFIG_PATH được đặt đúng cách tập lệnh Python không được chọn. Nhìn vào kịch bản, nó bắt đầu pkg-config trong một tiến trình con và tôi không chắc liệu thông tin biến môi trường có được truyền cho tiến trình con hay không. Tuy nhiên, tôi đã giải quyết vấn đề bằng cách sao chép các thư viện và tệp .cp vào/opt/local/lib/thư mục mặc định nơi pkg-config trông.

8

Biến môi trường cần phải là export 'hữu ích cho các lệnh. Hãy thử

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
$ pkg-config --libs --cflags cld 
Các vấn đề liên quan