Я пытаюсь создать динамически загружаемую библиотеку / пакет (пробовал оба) в XCode (пробовал 9 и 10), в частности, из этого репозитория: https://github.com/kurasu/surge - это аудио плагин VST2, используемый цифровым аудиорабочие станции (например, Ableton Live, Bitwig Studio, Cubase и т. д.).
Я могу создавать архитектуры i386
и x86_64
.Однако, когда я пытаюсь загрузить плагин, хост (в данном случае Bitwig - другие молча терпят неудачу) сообщает:
Error loading
/Library/Audio/Plug-Ins/VST/Surge.vst/Contents/MacOS/SURGE:
dlopen(/Library/Audio/Plug-Ins/VST/Surge.vst/Contents/MacOS/Surge, 262): no suitable image found. Did find:
/Library/Audio/Plug-Ins/VST/Surge.vst/Contents/MacOS/Surge: mach-o, but wrong architecture
Тем не менее, библиотека на самом деле является правильной архитектурой,из того, что я могу сказать (хост поддерживает x86_64
):
$ lipo -info /Library/Audio/Plug-Ins/VST/Surge.vst/Contents/MacOS/Surge
Non-fat file: /Library/Audio/Plug-Ins/VST/Surge.vst/Contents/MacOS/Surge is architecture: x86_64
Я также создал версию i386
с тем же результатом.
Еще несколько замечаний: этоВ некоторых местах библиотека содержит ассемблерный код, оригинальная сборка VST2 создает dylib
со скриптом для его упаковки.Я также изменил его, чтобы создать bundle
вместо этого, но в конечном итоге это привело к той же ошибке.Он также усыпан различными условиями для Windows / Mac / Linux.
Я также могу создать отдельный плагин, над которым я работал без каких-либо проблем, просто кажется, что это происходит с этой конкретной базой кодаи создайте сценарии / опции.
Что может быть причиной этого сообщения в том случае, если архитектура действительно правильная?И что я мог сделать, чтобы это исправить?
Большое спасибо!