otool输出中的相对路径
Relative paths in otool output?
我对从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
?还是用其他方法来搜索这些"相对"路径?
这没有问题。这意味着,没有绝对路径的库相对于你所拥有的对象是相对的(pyopenvdb.so)。但是,如果您想对其进行标准化,可以使用install_name_tool更改路径。在您提到的情况下,请使用-change参数。
Usage: install_name_tool [-change old new] ... [-rpath old new] ... [-add_rpath new] ... [-delete_rpath old] ... [-id name] input
例如,install_name_tool pyopencdv.so -change libboost_python.dylib /usr/local/lib/libboost_python.dylib
请注意,您还可以在输出的第一行中看到pyopenvdb.so也引用了自己。当然,这是一个相对路径,但如果您想使用install_name_tool,即使也可以将更改为绝对路径,为此,请使用"-id"参数。
相关文章:
- Windows 和 Linux 之间的相对路径分辨率差异?
- 如何获取 CMake 单元测试的相对路径?
- 从另一个应用启动我的应用时出现相对路径更改问题
- CMake 链接 2 个具有相对路径的库
- cmake find_package CMakeLists.txt 子文件夹中的相对路径
- 在可执行文件中使用带有符号链接的相对路径
- C++流找不到相对路径
- 如何将COM .tlb文件导入具有相对路径C++文件中?
- C++包括断开的相对路径
- CMake 安装具有相对路径的目标
- CMake为什么通过相对路径链接外部库
- Boost Filesystem flowly_caronical不会在没有父文件夹的情况下解决相对路径
- 如何将共享库与具有相对路径的 CMake 链接
- 相对路径中的错误
- C 能够以其完整路径打开代码::块中的文件,但不能以相对路径作为命令行参数打开文件
- 如何在基于QT的Autodesk Maya插件中使用相对路径
- 如何使用QT程序中的默认应用程序打开使用相对路径的PDF
- Visual Studio单元使用具有相对路径的文件测试
- 在 Visual Studio 中为 SFML 设置相对路径
- 如何配置MSVC以使用__FILE__显示头文件的相对路径