我在使用 C++ 编译的库文件时遇到了一些问题,因此我使用了otool
命令行实用程序(在 OSX 上)来查看它链接的文件。
这是输出:
! otool -L pyopenvdb.so
pyopenvdb.so:
pyopenvdb.so (compatibility version 0.0.0, current version 0.0.0)
/usr/local/opt/tbb/lib/libtbb.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/local/lib/libHalf.11.dylib (compatibility version 12.0.0, current version 12.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
/usr/local/lib/libIlmImf-Imf_2_1.21.dylib (compatibility version 22.0.0, current version 22.0.0)
/usr/local/lib/libjemalloc.1.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.5)
libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0)
libopenvdb.so.2.3.0 (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
大多数链接的文件都由绝对路径引用,例如/usr/local/opt/tbb/lib/libtbb.dylib
.
但是,有些似乎是相对路径引用的,就像文件名一样,例如libboost_python.dylib
.
这是什么意思?
这是否意味着在运行时libboost_python.dylib
可以链接不同版本的,具体取决于路径上首先找到的内容?或者是搜索这些“相对”路径的其他方法?