是否可以将metallib与可执行文件合并?

时间:2019-03-27 17:25:53

标签: objective-c metal

我使用 Objective-C Metal 框架制作了命令行工具。但是我想用metallib封装可执行文件。

我想知道是否有一种方法可以合并这两个文件,以便可执行文件可以独立运行?

1 个答案:

答案 0 :(得分:2)

您可以使用-sectcreate <segname> <sectname> <path>选项将.metallib文件作为加载器部分嵌入到可执行文件中。如果您使用编译器来驱动链接(这是非常典型的),则将其传递为-Wl,-sectcreate,<segname>,<sectname>,<path>。您可以选择长度不超过15个字符的任意段和节名称。避免使用带下划线的名称作为保留给系统的名称。

然后,您可以在运行时使用getsectdata()检索数据。从此构造一个NSData并将其传递给-[MTLDevice newLibraryWithData:error:]