#objective-c #metal
#objective-c #Металлические
Вопрос:
Я создал инструмент командной строки, используя Objective-C и фреймворк Metal. Но я хочу инкапсулировать исполняемый файл с metallib
.
Мне интересно, есть ли способ, которым я могу объединить эти два, чтобы исполняемый файл мог работать автономно?
Ответ №1:
Вы можете встроить файл .metallib в исполняемый файл в качестве загрузочного раздела, используя -sectcreate <segname> <sectname> <path>
опцию. Если вы используете компилятор для управления компоновкой (что довольно типично), вы бы передали это как -Wl,-sectcreate,<segname>,<sectname>,<path>
. Вы можете просто выбрать произвольные названия сегментов и секций длиной до 15 символов. Избегайте имен с префиксом подчеркивания, поскольку они зарезервированы для системы.
Затем вы можете извлечь данные во время выполнения с помощью getsectdata()
. Создайте NSData
из этого и передайте его в -[MTLDevice newLibraryWithData:error:]
.