2011-11-20 33 views
5

Tôi đã tải xuống thư viện C++ mở. Vấn đề là nó là một tập tin đối tượng thư viện (.lib). Đây là cách nó được phân phối. Mặt khác, tôi đang cố gắng sử dụng nó như một thư viện tĩnh bằng cách sử dụng NDK của Android và điều này mong đợi một tệp .a. Đã nhiều năm kể từ khi tôi sử dụng C++ nên có lẽ ai đó có thể làm rõ điều này. Không thực sự chắc chắn lý do tại sao họ phân phối dưới dạng .lib so với .a tệp? Và làm cách nào để tạo tệp .a từ .lib?Thư viện tĩnh C++ - cách tạo tệp .a từ .lib?

+0

xin thêm thẻ phù hợp – sehe

+2

Đó là mã nguồn mở, phải không? Tại sao bạn không lấy nguồn và tự xây dựng một đối tượng '.a'? –

+0

nguồn có sẵn. không quá quen thuộc với việc tạo tệp. – Androider

Trả lời

6

Nhìn vào ar lệnh từ binutils:

ar rcs mylib.a mylib.lib 
+0

Tôi đang sử dụng Cygwin. Tôi có ar. ar c mylib.a mylib.lib mang lại không có thao tác nào được chỉ định. – Androider

+0

ah ... nếu bạn đang sử dụng Cygwin, tôi phải cảnh báo: .lib có thể là thư viện 'import '(http://en.wikipedia.org/wiki/Dynamic-link_library#Import_libraries). Tuy nhiên, tôi đã cập nhật lệnh của tôi với các thiết bị chuyển mạch chính xác, sry cho thất bại bộ nhớ – sehe

+0

có, bây giờ nó hoạt động. – Androider

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