问题标签 [mach-o]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)
这是我第一次在 stackoverflow 上提问,我很绝望。
我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中。
我将使用static void __attribute__((constructor)) initialize(void)
开始调酒。这个可执行文件适用于内部企业应用商店,所以我不需要通过苹果应用商店(因为他们会拒绝它)。
这样做的原因是从客户那里获取现有的 IPA 及其签名密钥,并向他们的应用程序添加新功能,而无需开发人员干预。
有一家公司在做这件事,叫做 nukona。您可以在这里观看电影:https ://www.youtube.com/watch?feature=player_embedded&v=z9rrOB6lOxY
我可以告诉你,我尝试将 LSEnvironment 放入 plist 文件中,DYLD_INSERT_LIBRARIES
但结果表明 LSEnvironment 在 IOS 应用程序的沙箱中似乎没有任何影响。
我还尝试了 install_name_tool 来更改其中一个依赖项并将其替换为我的 dylib(它也具有该依赖项)。它在没有信息的情况下崩溃。
显然,如果我将 dylib 添加到 XCode 中的测试应用程序并重新编译它可以完美运行,这是给定的。但是,这是我不能问的,例如,公司的管理员。重建可能会阻止客户使用此库。
这是我在堆栈溢出中找到的相关链接,但对于 osx,我需要它用于 IOS。 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件 (OSX)
我唯一能想到的就是以某种方式编辑二进制加载命令,但考虑到重定位表等,我不确定如何以及如何做到这一点......
欢迎任何替代方案。
感谢您的时间。
hex - 比较两个 mach-o 文件
我有两个 mach-o 文件,我需要在其中找到差异(十六进制不同值)。是否有任何工具可用于执行此操作。
我尝试使用“DiffMerge”,但它似乎没有支持的编码格式。
architecture - mach-o 但错误的架构
我正在尝试安装一个名为 ARIA2.3 的程序,该程序用于使用 NMR 数据计算蛋白质结构。该程序需要另一个名为 Tix 的程序来运行图形界面。然而,事实证明,Tix 安装起来很麻烦(保持礼貌)。我想我设法安装了它,但是当我使用命令启动 ARIA 的图形界面时仍然出现错误
我收到此错误消息:
我知道 libTix8.4.3.dylib 在架构 x86_64 中。我正在使用 Mac OS X 10.6.8,但我对信息学知之甚少。有人可以帮我让 ARIA 工作吗?
objective-c - Apple Mach-O 链接器 (id) 错误 - 架构 i386 的未定义符号
我知道这种类型的错误以前曾多次提出过,但我还没有找到解决我的错误的方法。我正在使用 xcode 4.0。我下载了 ASIHTTPRequest zip 并复制了 classes 文件夹以及两个“Reachability”文件。编译后,它给了我奇怪的错误,我无法弄清楚。下面我为架构 i386 复制了未定义符号的错误文本。
它还在ASIAuthenticationDialog.m文件中给我一个警告:
请任何人告诉我这些错误和警告是什么?我究竟做错了什么?我为此浪费了很多时间:(
编辑:
文件中的警告代码ASIAuthenticationDialog.m
:
ios - 链接器命令错误:“ld:未找到体系结构 i386 的符号”
我在编译时出错。似乎很奇怪。它用作详细视图应用程序,但使用单个视图似乎不起作用。这是错误详细信息:
iphone - Apple Mach-O 链接器错误 (2)
我收到关于CloudApp API的 2 个 Mach-O Linker Errors 。我一直在 StackOverflow、Apple 的开发者论坛和其他地方寻找大量答案,这些答案至少会很接近问题,但它们并不是很有帮助。在过去的几天里,这一直困扰着我,我似乎无法解决它。
以下是两个错误:
任何帮助,将不胜感激。如果你有问题,就问吧。提前致谢。
objective-c - Apple Macho 链接器错误 Xcode
您好我正在创建一个动态表视图,并尝试从存储在其他文件中的方法上传信息。当我尝试测试我是否获得信息时,我得到了 Macho Linker Error
架构 i386 的未定义符号:“_OBJC_CLASS_$_FlickrFetcher”,引用自:MyTableViewController.old 中的 objc-class-ref:未找到架构 i386 的符号
这是我添加的导致问题的代码。
FlickerFetcher.h 这有我的 tableViewController 调用 topPlaces 的方法
表视图控制器文件。我认为当我懒惰地实例化它时,问题出现在 setter Brain 中,因为代码在我添加它之前工作正常,NSlog 返回 NUll 因为没有对象但它正在工作,然后当我添加 setter 以实例化它时,我得到了男子气概链接器错误。
objective-c - 为什么这个 ViewController 会使我的代码崩溃?
我在网上找到了这个颜色选择器,我目前正在尝试将它实现到我的代码中。我按照所有说明来实现它,但是当我尝试加载代码附带的 ViewController 时(使用 UITableView 单元格),当我尝试构建和/或运行代码时出现 Apple Mach-o Linker Error 说:
架构 armv7 的未定义符号:“_OBJC_CLASS_$_ColorPickerViewController”,引用自:ClockSettingsViewController.o ld 中的 objc-class-ref:未找到架构 armv7 的符号
我所做的只是在崩溃点将视图加载到层次结构中(下一行是我呈现视图的那一行)。我在xcode中分别构建了每个部分,发现这行代码是错误的来源:
代码就在这里:
我已经用这种方法打开视图数百次了(事实上,这是我用过的唯一方法),所以我知道它不可能是代码本身,我到处检查并导入了我需要的所有内容. 出了什么问题,错误是什么意思,所以我可以在将来修复它。提前致谢。
linux - Qt 交叉编译 Linux -> MacOS 无法链接到 Qt 库
我正在尝试链接我为 Linux 主机上的 MacOS 目标交叉编译的 Qt 程序。我按照此处的说明 (https://github.com/Tatsh/xchain) 成功构建了 gcc,我可以编译和链接该页面上的两个简单测试程序,以生成在 MacOS 上运行良好的可执行文件。
我已经使用这个 gcc 从源代码构建了我自己的 Qt,我可以顺利编译我的 Qt 程序。问题出现在链接阶段,当我的程序的目标文件应该链接到 Qt 库时,似乎根本找不到 Qt 库,或者因为它们不兼容而被忽略。
我的程序的目标文件和我构建的 Qt 库似乎都可以:
g++ 调用如下所示:
当然还有更多的目标文件和更多的 Qt 库,为简洁起见,我将它们省略了。
我得到的错误是典型的没有将对象或库添加到命令行,例如:
似乎基本上没有找到每个 Qt 库。
我也尝试过直接指定 lib 文件而不是 -L/path 和 -lQtFoo 组合,我什至尝试将它们从 .dylib 重命名为 .so :)
如果我用 -v 运行 g++ 来查看链接器调用,然后还添加 -v ,我可以看到正在检查库的路径看起来没问题:
库位置和设置看起来不错:
lib 的内容似乎还可以,但是我对这部分不太熟悉……实际上我刚刚在另一个问题上发现了“nm”。
我对“名字修饰”也不太熟悉,但我觉得它可能与此有关。
到目前为止,整个交叉编译的过程已经很长了,所以在接近尾声的时候遇到了一些让我非常难过的东西真是太糟糕了——任何建议都将不胜感激!
**编辑** *
我发现如果我取出 ld64 调用的 -dynamic 标志,不同的函数名会显示为缺失。例如,上面提到的对“QMainWindow::event(QEvent*)”的缺失引用变为:
现在我可以看到这些名称确实在我构建的 Qt 库中找不到(配置问题......?)。这并没有让我知道应该做些什么来解决这个问题,但也许它可能会给其他人一个线索。
objective-c - Apple Mach-O Linker (id) Error Linker 命令失败,退出代码为 1,重复符号错误的负载,在 xcode 之外工作正常
我目前正在学习如何使用 Objective-C 我正在做一个涉及类的简单项目,我决定将它放入 Xcode 中进行一些简单的可视化调试,但是在消除所有错误和警告后,我遇到了:
现在奇怪的是,我将“固定代码”放回 Sublime Text 中,在那里我保存了它,然后通过终端编译它,它工作得很好没有错误没有警告什么都没有
我已经阅读了有关此的其他一些问题,解决方案要么始终是他们找到了重复声明,要么他们有一个同名的额外文件导致重复声明......我都没有。 ..
所以……有什么帮助吗?