【发布时间】:2012-12-01 03:19:47
【问题描述】:
所以,如果你已经有一个二进制文件,你可以在 OSX 上使用“install_name_tool”为它添加一个 rpath,如下所示:
install_name_tool -add_rpath @executable_path/blah
xcode 会在您构建应用程序包时自动执行此操作。
我知道在cmake中你可以使用它来设置共享库的install_name:
set_target_properties(nshared PROPERTIES BUILD_WITH_INSTALL_RPATH 1 INSTALL_NAME_DIR "@rpath")
我的问题是,向二进制文件中添加 rpath 相当于什么?
(对于“你为什么要那样做?”在你们中间,去看看你的 Applications/ 文件夹中任何应用程序上的 otool -l ,你会看到很多应用程序的条目如下:
Load command 15
cmd LC_RPATH
cmdsize 36
path @executable_path/../../Frameworks/
这是标准做法。我只是想在cmake中做到这一点)
【问题讨论】:
-
一个更普遍的问题是,为什么官方documentation 中描述的为目标设置
RPATH的技术显然不适用于可执行文件?