unsafe use of relative rpath libboost.dylib when making boost.python helloword demo?

后端 未结 2 1769
轻奢々
轻奢々 2020-12-31 19:49

Recently, I am learning boost C++ library. I want to use python to call exist C++ project. I have install boost under OSX 10.11 using brew install boost. My pyt

2条回答
  •  误落风尘
    2020-12-31 20:46

    Take this link as a reference.

    To my problem, use otool -L hello.so:

    hello.so:
        hello.so (compatibility version 0.0.0, current version 0.0.0)
        libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
        /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.10)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
    

    you can see that libboost_python.dylib is not point to the really exist path.

    so use this command:

    install_name_tool -change libboost_python.dylib /usr/local/lib/libboost_python.dylib hello.so 
    

    and run otool -L hello.so again:

    hello.so:
        hello.so (compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
        /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.10)
        /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.1.1)
    

    and finally run python test.py, I get the result.

提交回复
热议问题