如何在 Xcode 中链接动态库?

2024-01-27

我目前正在 Qt 中开发一个程序,它使用库 libqextserialport.1.dylib。

我构建它并在 x 代码中运行,它返回:

dyld: Library not loaded: libqextserialport.1.dylib
    Referenced from: /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/QtOpenCV
    Reason: image not found

该库位于 /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/。

我可以通过更改为可执行文件夹 /Users/samuelreh/Desktop/QtOpenCV/build/Debug/QtOpenCV.app/Contents/MacOS/ 并输入:

install_name_tool -change libqextserialport.1.dylib /Users/samuelreh/Desktop/QtOpenCV/qextserialport/build/libqextserialport.1.dylib QtOpenCV

我知道除此之外可能还有很多解决方案。有人知道 x 代码中最好/最优雅/最简单的做法吗?


我刚刚通过模块捆绑项目完成了这一点。这被包含到一个具有单独可执行文件的更大项目中。

我添加了“将 dylibs 复制到框架”步骤,将 dylibs 复制到 /Foobar.bundle/Contents/Frameworks/Foobar/。然后我添加了一个运行脚本阶段作为最后一步运行,以修复可执行文件中 dylib 的安装名称:

install_name_tool -change libBobDylan.dylib @executable_path/../Plugins/Foobar.bundle/Contents/Frameworks/Foobar/libBobDylan.dylib path/to/build/product/Foobar.Bundle/Contents/MacOS/Foobar

当然,libBobDylan.dylib 也链接到 libBillyIdol.dylib。因此,我必须在目标的最开始添加另一个运行脚本阶段来修复此处的安装名称:

install_name_tool -change libBillyIdol.dylib @executable_path/../Plugins/FooBar.bundle/Contents/Frameworks/Foobar/libBillyIdol.dylib local/path/to/libBobDylan.dylib

我有十多个可以链接的内容;我必须说服 dylib 的供应商填充他们的标头以适应我的许多 install_name 更改......

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

如何在 Xcode 中链接动态库? 的相关文章

  • 使用 C# 和反射打印完整的对象图

    我有一个复杂的对象 class A int Field1 int field2 property ClassB ClassB property classC classC etc etc 我想使用反射打印完整的对象图 有什么好的代码吗 一种
  • 通过 TCP/.NET SSLStream 发送文件很慢/无法正常工作

    我正在编写一个与 SSL 配合使用的服务器 客户端应用程序 通过SSLStream 它必须做很多事情 不仅仅是文件接收 发送 目前 它的工作原理是 只有一个连接 我总是使用从客户端 服务器发送数据SSLStream WriteLine 并使
  • 如何让BackgroundWorker返回一个对象

    我需要做RunWorkerAsync 返回一个List
  • 如何在方法模板中使用模板类型的引用传递参数?

    我目前正在努力编译以下代码 首先是包含带有方法模板的类的头文件 ConfigurationContext h class ConfigurationContext public template
  • gcc 删除内联汇编代码

    看起来 gcc 4 6 2 删除了它认为函数中未使用的代码 test c int main void goto exit handler asm volatile jmp 0x0 exit return 0 拆解main 0x0804840
  • C# While 循环与 For 循环?

    在 C 中 一个问题已经困扰我一段时间了 它的 While 和 For 循环之间的实际主要区别是什么 它只是纯粹的可读性吗 在 for 循环中本质上可以做的所有事情都可以在 while 循环中完成 只是在不同的地方 举这些例子 int nu
  • 获取进程的所有 DLL

    我想获取为给定进程加载的所有 dll 的列表 我目前正在使用 NET框架4 0 我知道有一个bug https connect microsoft com VisualStudio feedback details 546430 syste
  • 使用 c# 中的 c++ ref 中的引用从 C# 调用 C++ 代码错误

    所以在我的 c dll 文件中我得到了以下函数 DLL void GetUserPass char userName char passWord userName ceva passWord altceva 现在我想从 c 调用它 但它给了
  • C++中的虚方法表存放在哪里?

    我想知道类对象 不是实例 而是类 如何存储在内存中 class A public int a virtual void f virtual A class B public A public int b void f final overr
  • 获取RFC返回的嵌套结构的值?

    我是 C 新手 我有 rfc 它以嵌套结构的形式从 SAP 系统返回数据 但是当我使用以下方式获取该数据时 IrfcTable table rfc getTable exporting parameter et customer 它仅返回第
  • 扩展一个类

    编辑回答 虽然我最初的问题并没有完全按照康拉德 鲁道夫提供的答案所解决的方式解释我的需求 但他 无意或有意 基本上为我写了我想写的内容 类本身不会被扩展 但通过使类了解新函数来扩展其功能 这些新函数允许它 类 处理更广泛的问题 我非常感谢您
  • cmake 包括其他目录中的 h 文件

    我在 cmake 项目下进行测试时遇到问题 我的项目是这样安排的 TerrainMap PointAccumulator heightQuadGrid Test 在 TerrainMap 目录中 CMakeLists txt 文件简单地概述
  • 随机排列

    我无法找到一种随机洗牌元素的好方法std vector经过一些操作后 恢复原来的顺序 我知道这应该是一个相当简单的算法 但我想我太累了 由于我被迫使用自定义随机数生成器类 我想我不能使用std random shuffle 无论如何这没有帮
  • 在 Ubuntu 16.04 上编译 PCL 1.7,CMake 生成的 Makefile 中出现错误

    我正在尝试让 PCL 1 7 点云库 而不是其他 pcl 在 Ubuntu 16 04 上运行 我最终希望用于 C 的东西 但现在我只是想让这些例子工作 我使用的是 Ubuntu GNU 5 3 1 附带的默认编译器和 Cmake 版本 3
  • 初始化二维数组时出现分段错误

    我已经检查过我的代码是否正确地划分了内存空间 但是一旦我尝试将 2D 数组初始化为某些值 然后对这些值求和 我就会在 2x2 数组上收到分段错误 我想最终将我的代码扩展到更大的数组 但我什至无法让它在这里工作 我知道有很多关于 malloc
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方
  • 错误:C# 尝试读取或写入受保护的内存

    我很难纠正这个错误 该应用程序在 4 台不同的机器上进行了测试 在其中 3 台上运行良好 但一台 Vista PC 在尝试通过 WebBrowser1 打开页面时出现此错误 解决这个问题的任何帮助对我都会非常有帮助 System Acces
  • 在 C# 中设置风扇速度

    我知道以前有人问过这个问题 但我似乎无法让它发挥作用 我已调用以下内容 using System Management using System Management Instrumentation using System Runtime
  • 我可以创建一个 List> 吗?

    我正在尝试创建一个列表WeakReference使用 4 5 泛型实现 这样我就可以避免类型检查和转换WeakReference目标 但 WeakReference

随机推荐

  • Rails 5.2 Active Storage 清除/删除附件

    因此 我使用 Active Storage 上传附加到集合模型的多个图像 一切正常 除非我尝试从集合中清除 删除单个附件 问题 由于某种原因 每当我加载集合的显示页面时 我的所有图像都会立即被清除 删除 当然 我只想在单击链接时删除文件 有
  • ios11如何防止录屏

    由于某些原因 我们的APP不希望人们录制屏幕 但是在ios11中 一个新功能可以让用户录制iPhone屏幕 那么是否有API或通知表明用户正在录制 十分感谢 您可以通过以下方式检测屏幕是否正在录制 UIScreen main isCaptu
  • 无法创建 F# Android 项目 - Visual Studio 2015 Xamarin 社区

    我正在按照对话选项从 Xamarin 下载页面在 Visual Studio 社区版中创建新的 F Android 空白活动 但运气不佳 C android 项目似乎工作得很好 这是 Xamarin 开源公告后不久发布的 Visual St
  • 将嵌套列表(不等长)转换为数据框[重复]

    这个问题在这里已经有答案了 我有一个嵌套列表 对于某些指数 缺少一些变量 1 sk ques pval 10 sfsf 0 05 2 sk ques pval diff 24 wwww 0 11 0 3 3 sk ques pval dif
  • Java 使用 Cassandra 的最佳 api/库是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找具有以下要求的 API 它使用简单且简洁 它并不臃肿 以 Spring 的方式工作 或者至少很容易使其与 Spring 一起工作
  • WKWebView 添加为子视图在 Swift 中旋转时不会调整大小

    我正在努力向我的浏览器应用程序添加新的阅读视图 它是另一个视图控制器 仅包含作为子视图添加的 WKWebView 并带有用于关闭视图的按钮 和手势 一切都很好 但是当我旋转设备时 子视图的大小没有调整 所以我的屏幕的一半是空的 阅读视图中的
  • Shared_ptr 和 unique_ptr 有例外

    From en cppreference com http en cppreference com w cpp memory unique ptr std unique ptr 的典型用途包括 提供异常安全 处理具有动态生命周期的对象的类和
  • 为什么角度日期过滤器将 2 添加到小时?

    我使用角度 日期 过滤器在角度js中创建了一个持续时间计时器 由于某种原因 小时部分以 2 而不是 0 开头 我像这样使用过滤器 runningDuration date HH mm ss http jsfiddle net rpg2kil
  • 有没有办法通过图形浏览器API获取所有应用程序的主列表

    In Azure Active Directory 管理中心 我可以看到下面有近200个应用程序企业应用 我怎样才能通过这个微软图形资源管理器 我尝试过这个 https graph microsoft com beta applicatio
  • 如何将所有 VBScript 文件的 cscript.exe 更改为 wscript.exe 执行?

    安装新服务器后 我遇到了一个问题 我有很多 vbs 文件 都需要在 wscript 中运行 原因是 我使用所有这些命令 例如 WScript Echo hello 我希望双击时能够看到输出VBScript http en wikipedia
  • 如何复制字典并仅编辑副本

    I set dict2 dict1 当我编辑时dict2 原本的dict1也发生变化 为什么 gt gt gt dict1 key1 value1 key2 value2 gt gt gt dict2 dict1 gt gt gt dict
  • 我需要一个 hack 来制作 xslt 让我们为变量设置新值

    我读到 与编程语言不同 XSLT 不允许我们为变量设置新值 我只是想知道是否有任何技巧可以绕过人们正在使用的这个限制 因为有能力重置 a 的值variableAFAIK 本质上很有用 好吧 至少如果我们可以重置变量的值 我可以在这里解决我的
  • Flutter - 如何在 GetStorage 中存储列表?

    对于用户浏览的每一篇文章 我想保存ID信息 我正在使用 getstorage 我的代码示例如下 我也找不到真正的方法 我正在寻找保存 id 列表的最佳方法 final box GetStorage List
  • 防止隐藏字段改变

    如果我的 ChangePassword 表单包含隐藏的用户 ID 字段怎么办 BadPerson 知道 GoodPerson 的 ID 他使用 FireBug 打开 更改密码 表单 将其 Id 更改为 GoodPerson 的 Id 因此
  • 如何在Python中的函数调用之间维护列表和字典?

    我有一个功能 在里面我维护着一个值字典 我希望在不同的函数调用之间维护该字典 假设 dic 是 a a 1 b 2 c 3 第一次打电话说 我变了a a to 100 字典变成a a 100 b 2 c 3 在另一个电话中 我改变了a b
  • 防止/使修补二进制程序集变得困难

    我不确定术语是否正确 您可以使用哪些代码实践来使某人难以修改二进制文件 程序集以绕过检查 例如在源代码中 bool verificationResult verify if verificationResult allow Somethin
  • java.lang.ClassNotFoundException:org.springframework.boot.SpringApplication 与 maven-jar-plugin

    我是 Spring 和 Maven 的新手 我正在尝试运行一个简单应用程序的 jar 但收到以下错误 java jar target gs rest service 0 0 1 SNAPSHOT jar Exception in threa
  • iOS 14 中 UIBarButtonItem 是否不再支持accessibilityLabel?

    Update 此错误已在 iOS 14 5 中修复 我将以下类嵌入到UINavigationController class ViewController UIViewController override func viewDidLoad
  • 如何在 C# 中生成随机命名的文本文件?

    我必须创建一个循环来生成一个 5 个随机选择的字母字符串 然后在该名称下创建一个文本文件 比如说 C 我将如何做到这一点 生成名称并在目录中创建文件 我想我必须从 ascii 代码中挑选 5 个随机数 将它们添加到一个数组中 然后将它们转换
  • 如何在 Xcode 中链接动态库?

    我目前正在 Qt 中开发一个程序 它使用库 libqextserialport 1 dylib 我构建它并在 x 代码中运行 它返回 dyld Library not loaded libqextserialport 1 dylib Ref