XCode 中的动态库

2023-11-25

我正在尝试在 XCode 中创建一个 mac 应用程序,它的一些实现在动态库中。

我向我的 XCode cocoa 项目添加了一个新目标(动态库),在与框架和预编译头进行了一些斗争之后,进行了 dynlib 编译 - 并从调试器成功运行。

然而,当独立运行时,很明显 dynlib 位于错误的位置。 “未加载库:/usr/local/lib/testlib.dynlib”。在 Windows(我更常用的平台)上,Dll 可以放置在与 exe 相同的文件夹中,以及系统路径上的任何位置。

我宁愿我的应用程序在其应用程序包中的某个位置查找其 dynlib (某些文档似乎确认这是正确的方法),但我不知道如何进行。

是否可以在 XCode 中配置项目,以便 dylib 实际上被复制到应用程序包中,应用程序将在其中查找它?


看来我不需要使用 otool 来重置搜索路径。如果我编辑目标信息 -> 构建 -> 部署 -> 安装目录,我可以从 XCode 内部更改 dyld 将查找 dylib 的路径。默认情况下,对于新的动态库项目,路径设置为/usr/local/lib。我已经改为./- otool 确认 ./ 现在是 dyld 将要查找此特定动态模块的位置。不幸的是 ./ 似乎实际上并没有引用我的应用程序包中的任何目录:(

所以,我的问题(在其他线程中没有回答)现在是: 1.如何输入有意义的relative目标信息 -> ... -> 安装目录设置中的路径,以及 2.如何让XCode自动将dylib“目标”复制到应用程序包目标的相对位置的包文件夹中?


终于。找到了一些官方文档。完全可以在 XCode 中完成此操作。

我正在修改库的安装目录设置:它需要是:@executable_path/../Frameworks

然后我需要向库添加“复制文件”构建步骤,以将其实际复制到 Frameworks 文件夹。

简单的。自动的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XCode 中的动态库 的相关文章

  • Cocoa 卸载驱动器但不弹出它

    你知道要卸载驱动器吗without将其弹出 NSWorkspace有一些卸载驱动器的方法 但它也会弹出它们 任何想法 我按如下方式执行此操作 它会卸载驱动器但不会弹出它 其实我想弹出磁盘 只能卸载磁盘 P 请分享如何弹出磁盘 DASessi
  • xcode 5.1 中的 ios 6.0 模拟器

    我刚刚成功将 Xcode 工具更新到 5 1 版本 当我检查首选项部分中的 下载 选项时 我注意到没有下载 ios 6 0 模拟器的选项 请检查附图 那么如何在Xcode 5 1中访问ios 6 0模拟器呢 请按照此程序升级您的 xCode
  • Xcode:警告:找不到选项的目录[重复]

    这个问题在这里已经有答案了 Ld Users pwang Library Developer Xcode DerivedData socketiohldwxnslzhlnjtgihgewdwavpjpb Build Products Deb
  • iPhone,sqlite3,如何尽可能用几行代码确定一个表是否已经存在?

    在开始再次向表添加数据之前 如何以尽可能少的代码行确定表中已经存在 如果直接使用sqlite 可以使用以下查询来查看表是否已经存在 SELECT name FROM sqlite master WHERE type table AND na
  • Xcode - 配置:错误:在 $PATH 中找不到可接受的 C 编译器

    从头开始重建 Mac 安装了 xcode 和 rvm 然后尝试安装 rubies 但它们都给了我 Error running configure prefix Users durrantm rvm rubies ruby 1 9 3 p12
  • 为什么类方法中的“self = [[Rectangle alloc] init]”是错误的?

    在 Apple 的文档 Objective C 编程语言 中 第 48 页说道 Rectangle rectangleOfColor NSColor color self Rectangle alloc init BAD self setC
  • 本地化 watchkit 配套应用程序的显示名称

    我在 Apple Watch 配套应用程序上本地化应用程序显示名称时遇到一些问题 按照指导方针 我将 CFBundleName 本地化如下 CFBundleDisplayName 我的应用程序 CFBundleName 我的应用程序 我为我
  • 外观代理 - iOS 5 的 setShadowImage 替代品?

    您好 我正在使用此代码来设置导航栏的阴影图像 if self navigationController navigationBar respondsToSelector selector shadowImage UINavigationBa
  • 枚举的 clang-format 样式选项

    有谁知道如何配置 clang format 以将枚举保留在单独的行上 i e enum ONE TOW THREE vs enum ONE TWO THREE EDIT 以下是我用来匹配 Apple 的 Objective C 风格指南的风
  • 在哪里可以了解有关 WebCoreSharedBufferData 的更多信息?

    我有一个在 iOS 6 上完美运行的应用程序 但在 iOS 7 上 如果用户采取了非常具体的操作 太复杂而无法进入 但它使用UIWebView并且它是一致的 应用程序崩溃并出现错误 Terminating app due to uncaug
  • NSCF 数组越界?

    我有一个相当简单的应用程序 使用 Core Data 和几个数组控制器 在 IB 中 除了 xcdatamodel 文件之外 没有它们的代码文件 当我运行应用程序时 我在日志中收到以下错误 应用程序仍然运行 但在转到 文件 gt 新文档 之
  • 保留“自我”的坏做法?

    我有一个简单的疑问 希望有人能解答 保留自我是不好的做法吗 我有一个想要创建的服务器请求对象 我希望能够通过以下方式使用它 ARequest request ARequest request someParam request delega
  • xcode 9 中的 Facebook 登录按钮终止

    我正在使用 Xcode 9 并将编译器设置为 Swift 3 2 我使用 Cocoapods 安装了 Facebook Login 一切都编译没有任何错误 但每当我在模拟器中运行它时 我单击登录按钮 它就会崩溃 控制台中仅打印以下内容 li
  • 使用 Xcode 3.2 进行 PyObjC 开发

    Xcode 3 2 删除了脚本语言 Ruby Python 等 的默认模板 如何找到这些模板以在 Xcode 3 2 中使用 我是否需要向 Xcode 添加任何其他内容来支持使用和 构建 PyObjC 程序 此外 考虑到我已经是 Pytho
  • 对 NSTextField 设置限制

    我需要为文本字段设置字符限制 我跟着这个answer https stackoverflow com a 830019 913571我能够设定一个限制 但现在当我按下回车键时 所有字符都被清除了 什么地方出了错 BOOL isPartial
  • 没有编辑菜单的对话框中的 Cocoa 键盘快捷键

    我有一个LSUIElement显示菜单栏状态项的应用程序 应用程序可以显示包含文本字段的对话窗口 如果用户右键单击 按住 Control 键单击文本字段 则会出现一个菜单 允许剪切 复制 粘贴等 但是 标准 Command X Comman
  • 如何在 xcode 中从 nib 文件创建视图?

    我有以下代码来创建视图并将其放入滚动视图中以允许分页代码工作正常 但是我不能做的是从 nib 文件加载视图 换句话说 我想使用 initWithNibName 而不是 initWithFrame void createPageWithCol
  • GameKit 蓝牙传输问题

    我正在尝试使用 GameKit 框架通过蓝牙发送文件 我遇到的问题是我一次只能发送一个 NSData 对象 但我需要将其保存在另一端 如果不知道文件名 这显然是不可能的 但我不知道如何传输它 我尝试将其转换为字符串NSData data N
  • 查找 NSString 中子字符串的所有位置(不仅仅是第一个)

    有一个子串在字符串中出现多次 我用rangeOfString 不过好像只能找到第一个位置 如何找到子字符串的所有位置 NSString subString1 NSString subString2 n NSRange range1 newr
  • 如何更改 UILabel/UIFont 的字母间距?

    我已经搜索了很多 但找不到答案 我有一个普通的 UILabel 定义如下 UILabel totalColors UILabel alloc initWithFrame CGRectMake 5 7 120 69 autorelease t

随机推荐

  • 与主管一起运行 celeryd_multi

    我正在与 djcelery 和主管一起工作 我正在与主管一起运行芹菜 一切正常 一旦我意识到我需要将其更改为芹菜多 一切都崩溃了 如果我在终端中运行 celeryd multi 它可以工作 但总是在后台运行 就像主管需要在出现问题的前台运行
  • 在 CustomUIView 中重写 init() 会导致应用程序崩溃(EXC_BAD ACCESS)

    我正在尝试在 Swift 中子类化 UIView 然而 当调用初始化程序时 应用程序崩溃 EXC BAD ACCESS 这是班级 class CustomActionSheet UIView private var cancelButton
  • 如何使用 Selenium WebDriver 获取所有链接并一一单击这些链接

    我正在使用 Selenium WebDriver 和 java 我正在从网页中获取所有链接并尝试一一单击每个链接 我收到以下错误 错误 org openqa selenium StaleElementReferenceException 在
  • 分而治之,动态规划和贪心算法!

    当我遇到最优子结构的问题并且没有子问题共享子子问题时 我可以使用分治算法来解决它吗 但是当子问题共享子子问题 重叠子问题 时 我可以使用动态规划来解决问题吗 它是否正确 贪心算法与动态规划有何相似之处 当我遇到最优问题时 子结构且无子问题股
  • 如何在 RxJava 中处理 onError。我收到“OnErrorNotImplementedException”

    在我的应用程序中 我使用 ReactiveLocationProvider 库 link 我在 onCreate 方法中订阅更新 当设备在线时它工作正常 但如果我关闭 WiFi 并等待下一个后台位置更新设备 则会出现 OnErrorNotI
  • 尝试让 log4net 与 PowerShell 一起工作(混合使用 log4net 配置文件)

    我一直在努力让 log4net 与 PowerShell 一起使用 我有以下 PowerShell 代码 它使用配置文件拉入 log4net 然后尝试创建一个简单的日志文件条目 但出现错误 Clear History Clear Host
  • 如何在 Gitlab CI 中使用 Dockerfile

    将 gitlab ci 用于我的节点 反应应用程序 我正在尝试使用phusion passenger nodejs作为基础 docker 镜像 我可以在 gitlab ci yml 中轻松指定这一点 image phusion passen
  • 解释 bash 中数组长度的 ${#arrayname[@]} 语法?

    我知道可以通过以下方式获取 bash 中数组的长度 arrayname 我的问题是 这只是我必须记住的东西 还是可以将此语法分解为可以理解的部分 例如 什么是 符号意味着人们期望在哪里找到索引 为什么 在变量引用的开头意味着获取变量值的长度
  • Java:消除死代码

    我想知道Java如何处理以下情况 假设我有一个名为 Debug 的类 它看起来像这样 public class Debug private static final boolean isAssertEnabled true public s
  • 如何查找内核模块中的物理和逻辑核心数?

    Linux 中是否有内核函数可以返回物理核心的数量和 正在运行内核模块的逻辑核心 在超线程的情况下 看看最后include linux smp h smp processor id 给出当前正在执行的 CPU 的编号 get cpu 会做
  • 使用 PHP 在 CSV 文件中写入逗号

    我正在发送一个 csv 文件作为标题 并且我想使用逗号 不是为了分隔 只是为了使用 我该怎么做 我正在使用 PHP 但我无法使用fputcsv因为我将其作为标题发送 只需使用 value 围绕着它 一切都会好起来的
  • 如何使用邮递员将请求传递给 sagemaker

    我已经在 sagemaker 上训练了一个模型并创建了端点 我正在尝试使用邮递员调用端点 但是在训练模型时甚至之后 我没有为训练数据指定任何标题 我不知道如何在向 sagemaker 发送发布请求时创建有效负载 以下是调用快速入门指南中创建
  • 获取对象的活动引用

    我正在寻找一个托管 非托管 API 它允许我找到哪些对象引用另一个对象 并可能阻止它被垃圾收集 这样的 API 可能如下所示 var foo new Foo var bar new Bar bar Foo foo var reference
  • 在 Jenkins CI 上打开 Excel

    我正在 Windows 7 上工作 作为会话 1 登录 我的 Jenkins CI 在会话 0 中作为 Windows 服务运行 我的问题是 我想在会话 0 中通过 Jenkins CI 打开一个 Excel 文件 但想在会话 1 上显示其
  • 有没有办法从 Android 中的文件加载并部分绘制位图?

    假设我在磁盘上有一个有点大 即不适合大多数手机的内存 的位图 我只想以不缩放的方式在屏幕上绘制它的一部分 即inSampleSize 1 有没有办法只加载 绘制我想要的部分Rect指定区域而不加载整个位图内容 我非常有信心这是可能的 因为您
  • 在 Node.js 中导入:错误“必须使用导入来加载 ES 模块”[重复]

    这个问题在这里已经有答案了 我正在尝试导入myArr from hello js into index js 但是我得到一个错误 Error ERR REQUIRE ESM Must use import to load ES Module
  • 对象数据源或代码隐藏:哪个更好?

    我知道这是一个可能引起很多争论的主题 但我想知道人们如何看待使用对象数据源的各种优点和缺点 我现在正在和另一位程序员一起做一个项目 他的经验和舒适度都植根于经典的 ASP 我不确定该采用哪种方式a 快速完成工作 b 以最少的麻烦完成工作 我
  • 使用android studio 3.1.2后显示错误=2,没有这样的文件或目录

    安装后Ubuntu 18在配备 i7 和 24GB 内存的新台式机中 我们尝试移动我们的android studio以 zip 格式项目到新电脑 我们的项目在旧电脑上运行良好 但在新电脑上显示错误 org gradle api tasks
  • 如何连接具有 ID 数组的表

    尝试使用此示例来加入 ID 数组 https github com rethinkdb rethinkdb issues 1533 issuecomment 26112118 存储表片段 storeID 80362c86 94cc 4be3
  • XCode 中的动态库

    我正在尝试在 XCode 中创建一个 mac 应用程序 它的一些实现在动态库中 我向我的 XCode cocoa 项目添加了一个新目标 动态库 在与框架和预编译头进行了一些斗争之后 进行了 dynlib 编译 并从调试器成功运行 然而 当独