2014-08-28 15 views
6

Tôi đang xây dựng V8 và theo mặc định nó được lưu trữ dưới dạng tệp "mỏng", trong đó các tệp .a về cơ bản chỉ chứa các con trỏ tới tệp đối tượng trên hệ thống tệp của bạn thay vì chứa các tệp đối tượng. Xem man ar để biết chi tiết.Biến lưu trữ mỏng thành một bình thường

Tôi muốn có thể đặt thư viện này ở vị trí trung tâm để người khác có thể liên kết đến nó, và rõ ràng sẽ dễ dàng hơn để cung cấp tệp lưu trữ thông thường thay vì cung cấp tệp đối tượng.

Làm cách nào để lấy các bản lưu trữ mỏng được tạo bởi bản dựng và biến chúng thành các tệp thông thường? Tôi cho rằng nó sẽ đơn giản như liệt kê các tệp đối tượng trong kho lưu trữ mỏng và xây dựng lại một kho lưu trữ bằng cách sử dụng chúng, nhưng tôi không biết lệnh nào có thể được sử dụng để liệt kê các tệp đối tượng của tệp lưu trữ.

Trả lời

17

Sau khi một số nghiên cứu bổ sung, ar -t có thể được sử dụng để liệt kê các tập tin đối tượng trong một kho lưu trữ, vì vậy sau đó nó chỉ là một vấn đề cung cấp danh sách đó để ar như bạn thường sẽ khi tạo một kho lưu trữ.

Các kịch bản sau xử lý này cho tất cả các thư viện cùng một lúc:

for lib in `find -name '*.a'`; 
    do ar -t $lib | xargs ar rvs $lib.new && mv -v $lib.new $lib; 
done 
Các vấn đề liên quan