Динамическая библиотека металла iOSIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Динамическая библиотека металла iOS

Сообщение Anonymous »

Я столкнулся с проблемой; Я не могу подключить динамическую библиотеку к проекту.

Код: Выделить всё

xcrun metal -c dynShaders.metal -o dynShaders.air
xcrun metallib dynShaders.air -o dynShaders.metallib
< /code>
Содержимое Dynshaders.metal. < /p>
#include 
using namespace metal;
#import 

[[visible]]
float4 dynamicTestFunction() {
return float4(0.0,1.0,1.0,1.0);
}
< /code>
Далее я загружаю металлиб таким образом. < /p>
 let libraryURL = Bundle(for: type(of: self)).url(forResource: "dynShaders", withExtension: "metallib")!
do {
self.dynLibrary = try device.makeDynamicLibrary(url: libraryURL)
print("Library successfully loaded!")
} catch {
print("Failed to load library: \(error)")
self.dynLibrary = nil
}
< /code>
С этим подходом я постоянно получаю ошибку Exc_bad без каких -либо дополнительных разъяснений. Путь существует, файл есть, но ошибка возникает без предоставленной информации. . < /p>
xcrun metal -dynamiclib dynShaders.metal -o dynShaders.metallib
< /code>
Такая библиотека успешно загружается и не производит никаких ошибок. < /p>
Далее я составляю шейдер из текста, где я пытаюсь использовать функция из динамической библиотеки таким образом. < /p>
let compileOptions = MTLCompileOptions()
if let dynLibrary {
compileOptions.libraries = [dynLibrary]
}
let library = try device.makeLibrary(source: source, options: compileOptions)
return library.makeFunction(name: "dynamicShader")
< /code>
Вот как выглядит последний шейдер, тот, который я пытаюсь скомпилировать. < /p>
#include 
using namespace metal;
#import 

extern float4 dynamicTestFunction();

fragment float4 dynamicShader(VertexIn vertexIn [[stage_in]]) {
float4 color = float4(1.0,1.0,1.0,1.0);
color = dynamicTestFunction();
return color;
}
< /code>
И я всегда получаю ошибку. < /p>
Shader compilation error: Error Domain=MTLLibraryErrorDomain Code=3 "Undefined symbol(s) for architecture 'air64':
'_Z23dynamicApplyMainTexturev', referenced from:
dynamicShader in program_object_0
error: symbol(s) not found for target 'air64-apple-ios18.0.0'
" UserInfo={NSLocalizedDescription=Undefined symbol(s) for architecture 'air64':
'_Z23dynamicApplyMainTexturev', referenced from:
dynamicShader in program_object_0
error: symbol(s) not found for target 'air64-apple-ios18.0.0'
< /code>
Я попытался компилировать с указанной архитектурой, но это не помогло, как это. < /p>
xcrun metal -dynamiclib dynShaders.metal -arch air64 -o dynShaders.metallib
< /code>
Я также попытался добавить архитектуру при создании .air. < /p>
xcrun metal dynShaders.metal -arch air64 -c -o dynShaders.air
Что я делаю не так, и как мне правильно использовать динамическую библиотеку?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ic-library
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Рендеринг в 2 закадровые текстуры одновременно в шейдере фрагмента металла.
    Anonymous » » в форуме IOS
    0 Ответы
    37 Просмотры
    Последнее сообщение Anonymous
  • Как я могу отличить чистую и нечистую поверхность металла детали с помощью EmguCV?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • IOS, загруженная динамическая библиотека не может найти локальные функции C
    Anonymous » » в форуме IOS
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Нужна ли динамическая библиотека при компиляции?
    Anonymous » » в форуме C++
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Динамическая яркость значков строки состояния на iOS Flutter
    Anonymous » » в форуме IOS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»