Я создал библиотеку (плагин PhotoShop), используя xCode, где я использую библиотеки POCO для шифрования некоторой информации. На моей машине все работает нормально. Теперь, когда я устанавливаю библиотеку на клиентском компьютере, она не запускается, потому что не может найти libssl
библиотеки.
Ошибка загрузки / Приложения / Adobe Photoshop 2020 / Плагины / Blink.plugin / Содержание / MacOS / Blink: dlopen (/ Приложения / Adobe Photoshop 2020 / Плагины / Blink.plugin / Содержание / MacOS / Blink, 262): библиотека не загружена: / usr / local / opt / openssl@1.1/lib/libssl.1.1.dylib Ссылка на: / Приложения / Adobe Photoshop 2020 / Плагины / Blink.plugin / Contents / Frameworks / libPocoCrypto.71.dylib Причина: изображение не найдено
Если я использую brew
менеджер пакетов и устанавливаю libssl
тогда все работает хорошо, но мои клиенты не имеют ни малейшего представления о brew
или о чем-либо еще.
Это вывод otool
против моего плагина
...
Load command 18
cmd LC_LOAD_DYLIB
cmdsize 56
name @rpath/libPocoXML.71.dylib (offset 24)
time stamp 2 Wed Dec 31 17:00:02 1969
current version 71.0.0
compatibility version 71.0.0
Load command 19
cmd LC_LOAD_DYLIB
cmdsize 48
name /usr/lib/libc++.1.dylib (offset 24)
time stamp 2 Wed Dec 31 17:00:02 1969
current version 800.7.0
compatibility version 1.0.0
Load command 20
cmd LC_LOAD_DYLIB
cmdsize 72
**name /usr/local/opt/openssl@1.1/lib/libssl.1.1.dylib (offset 24)**
time stamp 2 Wed Dec 31 17:00:02 1969
current version 1.1.0
compatibility version 1.1.0
...
См. Абсолютный путь для libssl
. Я попытался изменить путь, чтобы он был таким же, как для libPocoXML
- @rpath/libPocoXML.71.dylib
, и просто распределял libssl
как часть моего пакета, такую же как библиотеки POCO, но это не работает, libPOCO не проверяет текущий относительный путь, он просто проверяет абсолютный путь, и я понятия не имею, как это изменить.
Ну, я подумал, может быть, я смогу использовать otool
, чтобы изменить это, но я действительно надеюсь, что есть лучшая альтернатива.