因此,如果您已经有一个二进制文件,您可以在 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中做到这一点)