Tuesday, 25 December 2012

dylib install_name Göreceli Yol Çözümü


Mac OS X sisteminde dylib dosyaları oluştururken Windows sistemlerinden alışık olmadığımız install_name parametresi hayatımızı zorlaştırıyor.

install_name parametresi dylib dosyasının nerede duracağını derleme aşamasında bize soruyor. Dolayısı ile belirli bir yol vermeniz gerekiyor. dylib dosyasını başka bir yola taşırsanız çalışmıyor.

Örneğin eğer install_name parametresini "/Library/Application Support/YourCompanyName/mydynamic.dylib" şeklinde vermişseniz dosya burada bulunmak zorunda.

Eğer dylib dosyanızı göreceli olarak çalıştırmak istiyorsanız @executable_path özel sözcüğü yardımımıza koşuyor. Örneğin benim executable dosyam neredeyse onun altında libs klasörü altında bulunsun istiyorsanız install_name parametresini şöyle vermeniz yeterli olur:

install_name = "@executable_path/libs/mydynamic.dylib"

Bu ayarı Xcode projenizde ilgili target seçildikten sonra Linking altında Dynamic Library Install Name parametresini değiştirerek yapabilirsiniz. 

install_name parametresini yukarıdaki gibi verdikten sonra çalıştırılabilir dosyanızla beraber dinamik dosyanızı istediğiniz gibi taşıyabilirsiniz. 

Yukarıdaki örnek için konuşacak olursak, dikkat etmeniz gereken çalıştırılabilir dosyanızın bulunduğu klasörün altında libs diye bir klasör olması ve libs klasörü içerisinde mydynamic.dylib dosyası bulunmasıdır. 

Mutlu Kodlamalar!

Volkan Özyılmaz