2009-07-31 13 views
8

Potrzebuję utworzyć wersję naszych bibliotek dla Maców dla jednego z naszych klientów. Nie jestem zaznajomiony z bibliotekami dynamicznymi na Macu, ale z tego, co rozumiem, mam dwie opcje: .dylib lub framework. Jaka byłaby najlepsza opcja? Czemu?tworzenie pliku .dll na komputerze Mac: .dylib lub framework?

Kilka pokrewnych pytania:

  • Jeśli dobrze rozumiem, .dylib mają być zainstalowany w jednym z katalogów stnadard UNIX, takich jak/usr/lib itp Stąd stosując .dylib powinny instalator mojego klienta jest znacznie bardziej skomplikowany, ponieważ prawdopodobnie będą musieli poprosić o pozwolenie na napisanie czegoś w folderze systemowym?
  • Czy struktury mogą być prywatne i osadzone w pakiecie klienta? Więc nikt nie może ich zobaczyć/użyć?

Wszelkie konstruktywne uwagi krytyczne/komentarze/pomysły bardziej niż mile widziane. Z góry dziękuję.

Alex

+0

Czy szukasz instalacji typu "przeciągnij i upuść" lub udostępnienia aplikacji instalatora (.pkg), która zajmuje się wszystkim? Jeśli jest to drugie, uprawnienia nie powinny stanowić problemu, ponieważ prawie każdy uruchamiany przeze mnie instalator prosi o hasło administratora (uzyskując uprawnienia administratora) z góry. –

Odpowiedz

8

.dylib jest podobna do .so Linux.

Ramy to po prostu sposób dystrybucji dystrybucji bibliotek i nagłówków w systemie OSX. Są równoważne pakietowi aplikacji do dystrybucji bibliotek.

przypadku obu metod, jeśli chcesz mieć pewność, inni ludzie nie używać ich należy używać statycznych bibliotek (.a plików) i coraz klientowi statycznie powiązać je do ich stosowania.

W przeciwnym razie nie ma zbyt dużej różnicy między frameworkami a .dylib, z wyjątkiem wcześniejszego ładniejszego dla programistów OSX.

Można je umieścić w pakiecie aplikacji klientów, otool/install_name_tool obsłużyć je w porządku.

+1

Możesz użyć '.so' na OS X też nie możesz? Wcześniej to widziałem. – mk12

+0

@ mk12 Tak. Właściwie wszystkie moduły Apache w OS-X to '.so' – Hawken

+0

Hi! Jak mogę umieścić dylib w pakiecie aplikacji dla klientów? Próbuję osadzić biblioteki OpenCV w aplikacji Qt. –

Powiązane problemy