creating a .dll on a mac: .dylib or framework?

vectorizor picture vectorizor · Jul 31, 2009 · Viewed 10.2k times · Source

I need to create a Mac version of our libraries for one of our customers. I am not so familiar with dynamic libraries on Mac, but from what I understand, I have 2 options: .dylib or frameworks. What would be the best option? Why?

Few related questions:

  • If I understand correctly, .dylib have to be installed in one of the stnadard UNIX directories such as /usr/lib, etc. Hence using a .dylib should make my customer's installer much more complex, since they'll probably need to request permission to write something in a system folder?
  • Can frameworks be private and embedded within my customer's bundle? So no one else can see/use them?

Any constructive criticisms/comments/ideas more than welcome. Thanks in advance.

Alex

Answer

Mike McQuaid picture Mike McQuaid · Jul 31, 2009

.dylib is similar to .so on Linux.

Frameworks are basically just the OSX way of distributing libraries and headers together. They are the Application Bundle equivalent for library distribution.

With either method if you want to ensure other people don't use them you should be using static libraries (.a files) and getting your customer to statically link them into their application.

Otherwise there isn't really much difference between Frameworks and .dylib except the prior is nicer for OSX developers.

Either can be embedded inside a customers Application bundle, otool/install_name_tool handle them both fine.