2011-12-20 30 views
9

Tôi chắc chắn đây là một vấn đề khá đơn giản. Tôi có một file configure.ac rất đơn giản mà tôi đang sử dụng để tìm hiểu cách autoconf & pkg-config làm việc cùng nhau. Tệp confgure.ac trông giống như:Sử dụng macro pkg-config PKG_CHECK_MODULES không

AC_PREREQ(2.61) 
AC_INIT(autoconf_test, 1.0, [email protected]) 

PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4) 

Sau đó tôi có thể thực thi autoconf từ dòng lệnh và tạo ra tập lệnh định cấu hình. Tuy nhiên, khi tôi chạy kịch bản cấu hình, tôi nhận được lỗi sau:

./configure: line 1618: syntax error near unexpected token `libusbmuxd,' 
./configure: line 1618: `PKG_CHECK_MODULES(libusbmuxd, libusbmuxd >= 0.1.4)' 

Nếu tôi sử dụng chương trình pkg-config từ dòng lệnh để kiểm tra xem liệu nó có thể tìm thấy thư viện này, nó thành công.

Vì vậy, có vẻ như rõ ràng vì lý do nào đó không thể xác định được macro PGK_CHECK_MODULE và tôi không chắc chắn lý do.

Đây có thể không phải là hệ điều hành cụ thể, nhưng tôi đang sử dụng Mac OS X 10.6.8.

+1

Macro nằm trong tệp 'pkg.m4' nếu tôi không sai. Bạn có thể tìm thấy tệp này ở đâu đó trong '/ usr/share/aclocal' hoặc một thư mục tương tự không? – ptomato

+3

Sử dụng 'aclocal --print' để xác định thư mục để tìm pkg.m4 –

+0

Bạn cài đặt pkg-config như thế nào và cách bạn cài đặt các autotools như thế nào? –

Trả lời

16

Khi bạn đang khởi động (ví dụ: chạy autoreconf), aclocal không thể tìm thấy pkg.m4. Điều này là do pkg-config không được cài đặt hoặc đã được cài đặt ở đâu đó mà aclocal không biết. (tức là, nó đã được cài đặt với một tiền tố khác với automake.) Thực tế là một trường tư tưởng lớn nói rằng cách tốt nhất để sử dụng pkg-config với các autotools là không sử dụng nó. Nếu bạn xem qua kho lưu trữ danh sách gửi thư tự động, bạn sẽ thấy quảng cáo được tranh luận này. Tôi không nói rằng bạn nên tránh sử dụng pkg-config (mặc dù tôi tin rằng nó là tốt nhất để làm như vậy), nhưng xin lưu ý rằng nhiều người khuyên bạn nên tránh nó hoàn toàn.

0

Có vẻ như những người homebrew đã quyết định đây không phải là vấn đề của họ và quét nó thành cảnh báo. siêu bực bội vì không ai sẽ thấy vì không ai đang sử dụng homebrew hoặc automake và hy vọng sẽ phải đào sâu vào chi tiết của những gì là sai. Here's the link.

Các vấn đề liên quan