Создание файла dylib в MacOS для использования с оболочкой Python API Steamworks

Я программист-хобби, пытающийся интегрировать SteamworksForPython API в игру на основе Python. Этот API представляет собой оболочку Python Steamworks API, которая официально поддерживает только С++. Я работаю над MacOS Sierra 10.12.6.

Слегка следуя документации, я сделал следующее:

  • Я загрузил репозиторий SteamworksForPython.
  • Я добавил каталог парового заголовка из SDK Steamworks (/sdk/public/steam) в это репо.
  • Я добавил к этому репо файл API Steam, соответствующий моей операционной системе (в моем случае libsteam_api.dylib из /sdk/redistributable _bin/osx32).

Следующий шаг, указанный в документации, - создать новый файл dylib. К сожалению, шаги для этого еще не были описаны для MacOS.

Если посмотреть на процесс для Linux и Windows, мне кажется, что мне нужно создать этот файл динамической библиотеки, используя файл repo SteamworksPy.cpp и заголовочный файл steam_api.h из SDK Steamworks.

Я исследовал, как создать файл dylib с помощью Xcode, и в настоящее время я пытаюсь это сделать. Этот процесс похож на тот, который описывается документацией для Windows с использованием Visual Studio.

Я сделал следующее:

  • Я создал новый проект Xcode динамической библиотеки типа plain С++.
  • Я добавил SteamworksPy.cpp в список источников компиляции.
  • Я добавил steam_api.h в список заголовков (под открытым не приватным или проектом).
  • Я добавил libsteam_api.dylib в раздел Link Binary With Libraries.

Я получаю сообщение об ошибке, когда пытаюсь построить. Вот скриншот:

введите описание изображения здесь

И вот более явный скриншот ошибки компоновщика:

введите описание изображения здесь

После прочтения этого, этого и this, я думаю, проблема в том, что Xcode не знает, где искать библиотеку, к которой я пытаюсь подключиться, поэтому мне нужно сказать ей, где искать. Это должно быть просто, но я не могу этого сделать.

Может ли кто-нибудь дать мне совет о том, как действовать?


Похожие вопросы, которые были полезны, но не привели меня к решению:

Ответ 1

Мне удалось решить эту проблему.

Xcode не смог найти местоположение библиотеки, к которой я пытался подключиться.

Я заметил, что в настройках Build я могу указать Path to Link Map File. Я пытался жестко указать путь к тому, где моя библиотека (libsteam_api.dylib), но я получил ту же ошибку, описанную выше.

Затем я сделал что-то, что сработало.

Я удалил ссылку на библиотеку в разделе Link Binary With Libraries.

Затем я переместил библиотеку из ее исходного местоположения в каталог проекта Xcode.

Затем я использовал панель выбора файлов в разделе "Связывание двоичных файлов с библиотеками", чтобы повторно выбрать библиотеку из каталога Xcode.

Когда я построил, все работало нормально.