Можно ли слить металлиб с исполняемым файлом? - PullRequest
1 голос
/ 27 марта 2019

Я создал инструмент командной строки, используя Objective-C и Metal framework.Но я хочу инкапсулировать исполняемый файл с metallib.

. Мне интересно, есть ли способ объединить эти два, чтобы исполняемый файл мог работать автономно?

1 Ответ

2 голосов
/ 27 марта 2019

Вы можете встроить файл .metallib в исполняемый файл как раздел загрузчика, используя опцию -sectcreate <segname> <sectname> <path>.Если вы используете компилятор для связывания (что довольно типично), вы должны передать это как -Wl,-sectcreate,<segname>,<sectname>,<path>.Вы можете просто выбрать произвольные имена сегментов и разделов длиной до 15 символов.Избегайте имен с префиксом подчеркивания, поскольку они зарезервированы для системы.

Затем вы можете получить данные во время выполнения, используя getsectdata().Создайте NSData из этого и передайте его -[MTLDevice newLibraryWithData:error:].

...