Используйте libxlsxwriter без CocoaPods в проекте macOS

Мой проект (Objective C, macOS, Xcode 11) не использует CocoaPods, и я хотел бы сохранить его в таком виде.

Я хочу использовать libxlsxwriter для экспорта данных в формате Excel. Я клонировал libxlsxwriter из GitHub и построил его. Теперь у меня естьlibxlsxwriter.a а также lbixlsxwriter.dylib.

Что я пробовал до сих пор: я выполнил инструкции на этом сайте (спасибо за ссылку), чтобы включить dylib. В настройках "Общие"lbixlsxwriter.dylibотображается как "Вставить и подписать", в "Фазах сборки" он указан в разделе "Связать двоичный файл с библиотеками" и имеет свой собственный раздел "Копирование файлов". Запуск из Xcode дает мне

dyld: Library not loaded: /usr/lib/libxlsxwriter.dylib
  Referenced from: /Users/XXX/Library/Developer/Xcode/DerivedData/XXXefxsacdsioejobcumpvsbklqguri/Build/Products/Debug/XXX.app/Contents/MacOS/XXX
  Reason: image not found

Что мне нужно добавить в свой проект: папку include со всеми файлами заголовков и обеими этими библиотеками? Как мне настроить общие настройки и этапы сборки?

1 ответ

Решение

Если у вас есть статическая библиотека и только один загрузчик, например. основной исполняемый файл (поэтому вам не нужно делиться им между своими компонентами), тогда вам вообще не нужна динамическая библиотека.

Просто добавьте свой libxlsxwriter.a в Target > General > Frameworks and Libraries раздел, и он будет связан с вашим исполняемым файлом и просто будет работать.

Если вам действительно нужна общая динамическая библиотека, вам нужно использовать rpath + LD_RUNPATH_SEARCH_PATHSсочетание. (Дайте мне знать, если вам понадобятся подробности по этому поводу).

Другие вопросы по тегам