Dự án tôi đang làm việc trên sử dụng hệ thống phân phối phi tiêu chuẩn, nội bộ tải xuống và biên dịch các thư viện phụ thuộc. Crock này khởi chạy, cho mỗi thư viện, kịch bản configure
cho làm tiền tố một thư mục nội bộ của hệ thống biên dịch. Sau đó, nó chạy make
và make install
, sau đó nó xác minh nội dung bằng cách tìm kiếm thư mục cài đặt với tệp lib/<mylib>.a
. Bước cuối cùng này không thành công.Thư mục Lib trên bản phân phối OpenSuse 64 bit
Cố gắng hiểu điều gì đang xảy ra, tôi tự biên soạn một cặp thư viện ngẫu nhiên, bao gồm cả một trong những tác giả của tôi. Tôi nhận thấy rằng theo phân phối của tôi (openSUSE, 64 bit) đường dẫn cài đặt không được điền với /lib
, nhưng thay vào đó, với /lib64
.
Rõ ràng đây là cài đặt phân phối và tôi chắc chắn rằng cài đặt này liên quan đến cấu hình autotools được phân phối cùng với bản phân phối.
Có cách nào thay đổi hành vi này hay không, để thay thế, để đọc thông tin này từ hệ thống (để tôi có thể vá phần crock đã đề cập ở trên)?
Nhờ sự giúp đỡ của bạn
Cập nhật: tôi đã học về --libdir
cờ trong configure
, vì vậy tôi nghĩ rằng tôi có thể giải quyết vấn đề của tôi. Tuy nhiên, tôi muốn biết liệu có cách nào để biết chi tiết này không bằng cách nào đó truy vấn phân phối (ví dụ: đọc một số tệp cấu hình).
Điều này không liên quan gì đến autoconf trên hệ thống vì bạn không chạy autoconf. –
@WilliamPursell: Tôi không, nhưng tôi đang chạy tập lệnh 'configure'. Tôi đoán là hệ thống biên dịch dựa trên 'configure' có thể đọc một số cấu hình từ hệ điều hành (ví dụ: một số tệp trong'/etc/') để xác định nơi hệ điều hành được mong đợi tìm thư viện. – Dacav
Nếu kịch bản cấu hình đang tìm trong/etc /, đó là lỗi trong gói. Tôi chưa bao giờ thấy hành vi mà bạn mô tả. Nó có thể là bạn đang tạo ra các kịch bản cấu hình với một phiên bản vá của autoconf. Tập lệnh cấu hình có chứa dòng "libdir = '$ {exec_prefix}/lib'" không? –