2014-09-12

DYLD_LIBRARY_PATH in mac osx

在Mac上執行Python程式時,有時候會import shared library,而這個shared library可能又link到另一個shared library。如果這三個都是自己build的,在執行上很可能會遇到一個錯誤:

ImportError: dlopen(...): Library not loaded: share2.so
  Referenced from: share1.so
  Reason: image not found

程式架構是這樣的:myPython.py -> share1.so -> share2.so。會出現這個錯誤的原因是,系統不知道去哪裡找share2.so。解決這個問題的方法就是告訴系統去哪裡找自己build出來的share library:

export DYLD_LIBRARY_PATH=/path/to/your/share/library

[1] https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/dyld.1.html
Post a Comment