首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Xcode设置LC_RPATH (这样@rpath加载才能正常工作)?

如何让Xcode设置LC_RPATH (这样@rpath加载才能正常工作)?
EN

Stack Overflow用户
提问于 2021-07-30 20:34:13
回答 1查看 272关注 0票数 0

我想做一个命令行工具,它需要几个捆绑的框架(SDL和相关库)。我将Xcode设置为“嵌入和签名”这些框架,这会导致它们被复制到可执行文件旁边的build文件夹中。生成的可执行文件可以在Xcode中正确运行。

但是,当我尝试在命令行上运行相同的可执行文件时,它失败了,错误为:

代码语言:javascript
复制
dyld: Library not loaded: @rpath/SDL2.framework/Versions/A/SDL2
  Referenced from: /Users/jstrout/Data/CPP-dev/soda/Build/Products/Debug/./soda
  Reason: image not found
zsh: abort      ./soda

即使相对于当前(和可执行的)目录,镜像实际上位于SDL2.framework/Versions/A/SDL2。问题似乎是rpath设置不正确。我的所有搜索都表明我应该在我的可执行文件上的otool -l的输出中找到一个LC_RPATH命令,但实际上里面根本没有LC_RPATH命令(尽管有几个LC_LOAD_DYLIB命令引用了@rpath)。

所以。我必须在Xcode中做什么才能让它的链接器发出正确的LC_RPATH命令?或者,如果我完全找错了方向:如何让我的命令行可执行文件引用就在它旁边的框架?

EN

回答 1

Stack Overflow用户

发布于 2021-08-01 14:09:07

答案似乎是(感谢@Siguza):

  1. 导航到项目设置,选择左侧的“目标”和顶部的“全部”。
  2. 在“链接”下,找到“其他链接器标志”,然后输入-rpath @executable_path/

构建现在在可执行文件中生成一个适当的LC_RPATH命令,并且它能够找到位于它旁边的框架。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68596832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档