У меня есть проект на C ++, и я использую Xcode 9.2 и gcc для его компиляции. У меня есть список связанных статических библиотек, и вы можете увидеть некоторые из них на следующем рисунке:
Как вы видите, они правильно перечислены в разделе «Связать двоичные файлы с библиотеками» на панели XCode «Фазы сборки».
Все работает правильно, если я запускаю исполняемый файл на той же машине, которая использовалась для его генерации.
Проблемы начинаются, когда я пытаюсь запустить бинарный файл на другом Mac. Программа не запускается и возвращается следующее сообщение:
dyld: Library not loaded: /usr/local/opt/freetype/lib/libfreetype.6.dylib
Referenced from: /Users/user/Desktop/Joyce
Reason: image not found
Abort trap: 6
Бег otool -L на исполняемом файле это результат:
/usr/local/opt/fontconfig/lib/libfontconfig.1.dylib (compatibility version 12.0.0, current version 12.1.0)
/usr/local/opt/freetype/lib/libfreetype.6.dylib (compatibility version 23.0.0, current version 23.0.0)
/usr/local/opt/cairo/lib/libcairo-script-interpreter.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)
/usr/local/opt/cairo/lib/libcairo.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)
/usr/local/opt/cairo/lib/libcairo-gobject.2.dylib (compatibility version 11403.0.0, current version 11403.12.0)
Поэтому я немного озадачен статической связью с XCode, потому что я ожидаю, что эти библиотеки должны быть статически связаны с исполняемым файлом, но на основании приведенных выше результатов они кажутся динамически связанными.
Моя цель — запустить исполняемый файл на чужой машине без установки дополнительных компонентов.
Задача ещё не решена.
Других решений пока нет …