Я пытаюсь создать приложение macOS, используя Crystal и libui. Я могу статически скомпилировать исполняемый файл Crystal со всеми необходимыми библиотеками, чтобы он мог работать на любом Mac (частично статическом). По какой-то причине я использую осколок, который называется «хедрон» (кристаллические привязки для libui), я не могу скомпилировать программу с помощью libui.a, как я собираю свою программу с помощью libevent.a и libgc.a. Я могу только успешно построить с libui.A.dylib.
Я изменил файл top of bindings для шарда на @[Link(ldflags: "#{__DIR__}/../../../../vendor/libui.A.dylib")]
, и я компилирую свою программу, используя shards build --release --link-flags="-L
pwd /vendor"
. В папке vendor моего проекта у меня есть libevent.a, libssl.a, libgc.a, libcrypto.a и libui.A.dylib. Проект компилируется нормально. Затем я запускаю otool -L ./bin/CrystalDistroTest
и получаю следующий вывод:
./bin/CrystalDistroTest:
@rpath/libui.A.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libpcre.0.dylib (compatibility version 1.0.0, current version 1.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
/usr/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0)
Даже когда я копирую libui.A.dylib в каталог ./bin, он не запускается на других компьютерах. Это начинается у меня, потому что у меня есть libui.A.dylib в моем / usr / local / lib каталоге. Моя конечная цель - упаковать это в папку .app только для дистрибутива macOS. Куда мне положить libui.A.dylib, чтобы мой исполняемый файл мог его найти?