Sto sviluppando un'applicazione Cocoa utilizzando l'ultima versione di Xcode 4, voglio collegare librerie dinamiche al mio progetto (dylibs
).Perché install_name_tool e otool sono necessari per le librerie Mach-O in Mac Os X?
Ho letto da qualche parte che aggiungere le librerie nel mio progetto non era sufficiente poiché devo eseguire install_name_tool
e otool
per far sì che il mio progetto utilizzi le librerie che sono state raggruppate nel mio progetto.
Ho letto le pagine di manuale per install_name_tool
, ma non capisco PERCHÉ devo farlo.
Come funzionano le biblioteche? Particolarmente interessati nella parte in cui l'applicazione e le librerie hanno percorsi che puntano a luoghi specifici nella mia macchina, come /usr/local/lib/mylibrary.dylib
quando si esegue otool -L
'otool -L' è anche utile per visualizzare i nomi e le librerie condivise (che potreste voler cambiare con' install_name_tool'. – par
Nota: install_name_tool fallisce silenziosamente, controllare sempre che effettivamente abbia fatto ciò che gli avete detto di fare (usando 'otool -L'. –
geowar
Sembra che gli attributi in un dylib non contengano molto: sono usati solo quando si collega un eseguibile al dylib per copiare gli attributi dal dylib all'eseguibile. Per Nel caso in cui si abbia già un eseguibile collegato a un dylib ma è necessario modificare i percorsi, è sufficiente modificare solo l'eseguibile per impostare LC_LOAD_DYLIB e, facoltativamente, LC_RPATH. Il secondo è necessario solo se il primo ha @rpath esso. –