2009-07-31 32 views
8

Tôi cần tạo phiên bản Mac cho thư viện của mình cho một trong các khách hàng của chúng tôi. Tôi không quen thuộc với các thư viện động trên Mac, nhưng từ những gì tôi hiểu, tôi có 2 lựa chọn: .dylib hoặc các khung công tác. Điều gì sẽ là lựa chọn tốt nhất? Tại sao?tạo .dll trên mac: .dylib hoặc framework?

vài câu hỏi liên quan:

  • Nếu tôi hiểu đúng, .dylib đã phải được cài đặt trong một trong các thư mục stnadard UNIX như/usr/lib, vv Do đó sử dụng một .dylib nên làm trình cài đặt của khách hàng của tôi phức tạp hơn nhiều, vì họ có thể cần phải yêu cầu sự cho phép để viết một cái gì đó trong một thư mục hệ thống?
  • Các khung công tác có thể ở chế độ riêng tư và được nhúng trong gói của khách hàng của tôi không? Vì vậy, không ai khác có thể xem/sử dụng chúng?

Bất kỳ phê bình xây dựng/nhận xét/ý tưởng nào được hoan nghênh. Cảm ơn trước.

Alex

+0

Bạn đang xem xét cài đặt kéo và thả hay cung cấp ứng dụng trình cài đặt (.pkg) xử lý mọi thứ? Nếu đó là sau này, sau đó các điều khoản không phải là một vấn đề, như khá nhiều mỗi trình cài đặt tôi đã chạy yêu cầu một mật khẩu quản trị (do đó đạt được quyền admin) lên phía trước. –

Trả lời

8

.dylib cũng tương tự như .so trên Linux.

Khung về cơ bản chỉ là cách OSX phân phối thư viện và tiêu đề cùng nhau. Chúng là tương đương Bundle ứng dụng để phân phối thư viện.

Với một trong hai phương pháp nếu bạn muốn đảm bảo người khác không sử dụng chúng, bạn nên sử dụng thư viện tĩnh (.a tệp) và đưa khách hàng của bạn liên kết tĩnh vào ứng dụng của họ.

Nếu không, không có sự khác biệt thực sự giữa các Khung và .dylib ngoại trừ trước đó là tốt hơn cho các nhà phát triển OSX.

Hoặc có thể được nhúng bên trong gói Ứng dụng của khách hàng, otool/install_name_tool xử lý cả hai tiền phạt.

+1

Bạn cũng có thể sử dụng '.so' trên OS X phải không? Tôi đã nhìn thấy nó trước khi nào. – mk12

+0

@ mk12 Có. Trên thực tế, tất cả các mô-đun Apache trong OS-X là '.so' – Hawken

+0

Xin chào! Làm cách nào để nhúng dylib vào gói ứng dụng khách hàng? Tôi đang cố gắng nhúng các thư viện OpenCV vào một ứng dụng Qt. –

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