如何将二进制文件的内容嵌入到 Mac OS X 上的可执行文件中?

2024-05-09

我的命令行程序的构建过程生成一个二进制文件(超过 500KB),当前必须通过 argv 的路径引用该文件。我想将此文件嵌入到可执行文件中。

在 Linux 上,它看来有可能 http://www.linuxjournal.com/content/embedding-file-executable-aka-hello-world-version-5967 to use objcopy从二进制文件创建目标文件:

objcopy --input binary --output elf32-i386 --binary-architecture i386 myfile.dat myfile.o

但是,OS X 开发人员工具链不包含 objcopy 命令。如果不安装 binutils,还有哪些可能性?

我从 Xcode 构建我的项目,并使用自定义构建规则生成该文件。


在链接阶段,传递参数-sectcreate <segname> <sectname> <file>到链接器。如果您通过调用编译器来驱动链接器(这很常见),您可以将其传递为-Wl,-sectcreate,<segname>,<sectname>,<file>.

您可以编写段和节的名称。

你会使用getsectdata()功能 https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/MachOReference/#//apple_ref/c/func/getsectdata随着_dyld_get_image_vmaddr_slide() https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/MachOReference/#//apple_ref/c/func/_dyld_get_image_vmaddr_slide在运行时获取指向数据的指针。

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

如何将二进制文件的内容嵌入到 Mac OS X 上的可执行文件中? 的相关文章

  • Homebrew 将二进制文件放在哪里?

    Homebrew 是否安装软件包 usr local bin默认情况下 即它把二进制文件放在那里 我们可以告诉 Homebrew 将二进制文件放在其他地方吗 Apple Silicon Mac ARM 二进制文件位于 opt homebre
  • 如何从 Xcode 4.5 卸载 iOS 5.0 模拟器

    我已经安装了 Xcode 4 5 由于我编写应用程序是为了好玩 我不打算支持旧版 iOS 版本 并且为了节省 500 GB iMac 上的空间 是否有办法删除它 尝试从 Xcode 包中支持的平台中删除 iPhone iPhoneSimul
  • Mac OSX 10.7.4,Xcode 4.4.1,没有 头文件?

    我正在编写一个程序 它将使用 C 标准库的数组容器来保存一些对象 但是 每当我尝试在程序中包含以下代码行时 include
  • 使用 std::function w/ std::bind 时的 EXC_BAD_ACCESS

    升级到 XCode 5 后 使用 std function 和 std bind 似乎会生成 EXC BAD ACCESS 异常 看起来好像 std function 实现中的 base 指针最终为空 导致访问错误 但我不清楚为什么会出现这
  • 使用未声明的类型“对象”

    这太奇怪了 通常我可以理解未声明的类 但这是声称 Object 类本身未声明 NSObject 可以工作 但我的项目设置方式我需要它是一个纯 Swift 对象 我的类标题如下所示 import UIKit import Foundation
  • 增加 iPhone 的推送通知徽章

    是否可以在收到通知时增加徽章值 或者我应该将计数作为有效负载发送吗 如果我每次都将徽章值发送为 1 那么如果应用程序未打开 我如何增加应用程序图标中的徽章值 我已经使用了这段代码 但不起作用 void application UIAppli
  • Eclipse 在 Android SDK 内容加载器处挂起

    我已经在 OS X 10 8 2 上使用 Eclipse 4 2 Juno 版本 20120920 0800 几个星期了 为 Android 3 0 及更高版本构建应用程序 我有一台带 SSD 的四核 i7 MacBook Pro 因此性能
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • OSX:检测空格键向下和向上事件

    我需要记录我自己演讲的数千个简短的声音片段 我正在为语音识别引擎训练声学模型 因此 对于每个文本 屏幕上都会显示一行文本 我必须说出它 并将音频捕获到 WAV 中 我找到了一个用于录制音频的示例项目 现在我想弄清楚如何进行键盘输入 我想按下
  • 您必须提供 5.5 英寸 Retina 显示屏的屏幕截图(适用于 4.7 英寸)

    当我按下提交审核按钮进入iTunes连接 我收到错误 您必须提供 5 5 英寸 Retina 显示屏的屏幕截图 因为您的应用程序二进制文件支持 5 5 英寸 Retina 显示屏 这是因为我添加了启动图像适用于 5 5 和 4 7 显示器
  • 如何确定自定义 UINavigationItem.titleView 的大小/框架?

    创建自定义视图并将其分配给 navigationItem titleView 属性后 它的显示如下 自定义视图填充两个按钮之间的空间 因此 自定义视图并不以导航栏为中心 如何确定 titleView 属性中视图的框架 我想在导航栏中居中放置
  • Xcode - 免费清除设备文件夹?

    我正在删除一些文件夹和文件 以便在驱动器上腾出更多空间 我知道在路径中 Library Developer CoreSimulator Devices 每个模拟器和每个版本都有文件夹 这个文件夹对我来说大约有 11GB 大小 我知道我可以删
  • AppleScript:对传递给 Firefox 的 URL 中的任意查询字符串值进行编码

    我很长一段时间都使用 Firefox 作为 PC 或 Mac 上唯一的浏览器 简而言之 我的问题是 我想在 mac 上使用 automator 创建一个服务 Applescript 使用translate google com 进行相当即时
  • Xcode 和 Waze 集成

    我正在尝试整合我的app with waze http www waze com 有人知道如何调用位智并发送坐标吗 我没有找到任何 API 或其他相关信息 void navigateToLatitude double latitude lo
  • Intellij 基本完整的 ctrl + space 在 mac 上不起作用

    我在跑步IntelliJ on my macOS Big Sur and ctl space对于基本完整似乎不起作用 我查看了 首选项 gt 键盘映射 gt 代码完成 gt 基本 它似乎按顺序排列 有任何想法吗 发现操作系统本身已经采取了这
  • 如何获取多点触摸 UITapGestureRecognizer 的多个位置

    我的视图中有一个 UITapGestureRecognizer 我可以使用下面的代码很好地获取其触摸的位置 现在 如果我将此识别器的触摸次数更改为 2 或更多 它仍然会为我提供一个位置 如何获得两次触摸的两个位置 tapGesture lo
  • 在 MacOS 上构建需要 net461 的 dotnet SDK 项目的最简单方法

    我有一个 dotnet SDK sln and a build proj with
  • Xcode 方案预操作脚本未运行

    点击构建 构建日志中不会打印任何内容 是什么赋予了 Xcode 版本 8 2 1 8C1002 预操作发生在构建之前 因此输出不会进入构建日志 而是进入 stdErr 您可以将输出复制到文件中 exec gt PROJECT DIR pre
  • 安装 Ruby 后,MAC OS X 上的活动开发人员路径无效

    我收到此错误 xcrun 错误 无效的活动开发人员路径 Applications Xcode app 缺少 xcrun Applications Xcode app usr bin xcrun This solution https sta
  • OSX 和 SED - 删除文档目录中第 25 行之后的所有行

    我有一个包含数千个 txt 文件的目录 我需要修剪文件 以便删除每个文件中第 25 行之后的每一行 我使用的是 Mac OSX 10 14 6 我怎样才能做到这一点 我所做的尝试 经过研究 我认为 Mac OSX 终端中的 SED 是实现此

随机推荐