Я пытаюсь построить динамически загружаемую библиотеку / комплект (пробовал оба) в 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.
Я также могу создать отдельный плагин, над которым я работаю сам, без каких-либо проблем, просто кажется, что это происходит с этой конкретной базой кода и скриптами / опциями сборки.
Что может быть причиной этого сообщения в том случае, если архитектура действительно правильная? И что я мог сделать, чтобы это исправить?
Большое спасибо!
Задача ещё не решена.
Других решений пока нет …