我使用 Objective-C 和 Metal 框架制作了命令行工具。但是我想用metallib
封装可执行文件。
我想知道是否有一种方法可以合并这两个文件,以便可执行文件可以独立运行?
答案 0 :(得分:2)
您可以使用-sectcreate <segname> <sectname> <path>
选项将.metallib文件作为加载器部分嵌入到可执行文件中。如果您使用编译器来驱动链接(这是非常典型的),则将其传递为-Wl,-sectcreate,<segname>,<sectname>,<path>
。您可以选择长度不超过15个字符的任意段和节名称。避免使用带下划线的名称作为保留给系统的名称。
然后,您可以在运行时使用getsectdata()
检索数据。从此构造一个NSData
并将其传递给-[MTLDevice newLibraryWithData:error:]
。