Распространение библиотеки, которая использует библиотеки POCO - PullRequest
0 голосов
/ 22 марта 2020

Я создал библиотеку (плагин 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, чтобы изменить это, но я действительно надеюсь, что есть лучшая альтернатива.

...