सभी बढ़ावा पुस्तकालयों का पता लगाएं:
$ otool -L exefile
exefile:
@executable_path/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
और प्रत्येक के लिए libboost_xxx.dylib
, करें:
$ install_name_tool -change @executable_path/libboost_something.dylib /opt/local/lib/libboost_something.dylib exefile
और अंत में otool
फिर से उपयोग करके सत्यापित करें:
$ otool -L exefile
exefile:
/opt/local/lib/libboost_something.dylib (compatibility version 0.7.0, current version 0.7.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 65.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
manpages: otool
install_name_tool
EDIT A कुछ समय पहले मैंने copy_dylibs.py
एक ऐप बनाते समय इस सारे सामान को अपने आप काम करने के लिए एक पायथन स्क्रिप्ट ( ) लिखी थी । यह सभी लाइब्रेरीज़ को ऐप बंडल से /usr/local
या उसके साथ पैकेज करेगा /opt/local
और उपयोग करने के लिए उन लाइब्रेरीज़ का संदर्भ तय करेगा @rpath
। इसका मतलब है कि आप Homebrew का उपयोग करके आसानी से थर्ड-पार्टी लाइब्रेरी स्थापित कर सकते हैं और उन्हें आसानी से पैकेज कर सकते हैं।
मैंने अब इस स्क्रिप्ट को जीथब पर सार्वजनिक कर दिया है ।