在 MacOS 上创建一个 dylib 文件以与 Python Steamworks API 包装器一起使用

Creating a dylib file on MacOS for use with Python wrapper of Steamworks API

我是一名业余程序员,正在尝试集成仅正式支持 C++ 的 SteamworksForPython API into a Python-based game. This API is a Python wrapper of the Steamworks API。我正在使用 MacOS Sierra 10.12.6。

盲目地按照文档,我做了以下事情:

  1. 我已经下载了 SteamworksForPython 存储库。
  2. 我已将 Steamworks SDK (/sdk/public/steam) 中的 steam header 目录添加到该存储库。
  3. 我已将适合我的操作系统的 Steam API 文件添加到该存储库(在我的例子中,来自 /sdk/redistributable_bin/osx32 的 libsteam_api.dylib)。

文档中列出的下一步是创建一个新的 dylib 文件。不幸的是,尚未针对 MacOS 描述执行此操作的步骤。

查看 Linux 和 Windows 的过程,似乎我需要使用 repo 的 SteamworksPy.cpp 文件和 steam_api.h header 来自 Steamworks SDK 的文件。

我研究了如何使用 Xcode 创建 dylib 文件,目前正在尝试这样做。该过程似乎类似于 documentation 为 Windows 使用 Visual Studio.

所描述的过程

我做了以下事情:

  1. 我创建了一个新的 Xcode 纯 C++ 动态库类型的项目。
  2. 我已将 SteamworksPy.cpp 添加到 Compile Sources 列表中。
  3. 我已将 steam_api.h 添加到 Headers 列表(在 public 下,不是私人或项目)。
  4. 我已将 libsteam_api.dylib 添加到 Link Binary With Libraries 部分。

但是,我在尝试构建时遇到错误。这是屏幕截图:

这里是 linker 错误的更明确的屏幕截图:

阅读 this, this, and this 后,我认为问题是 Xcode 不知道去哪里寻找我要 link 的图书馆,所以我需要告诉它在哪里看。这应该很简单,但我做不到。

谁能给我建议如何进行?


类似的问题很有帮助,但没有让我找到解决方案:

我设法解决了这个问题。

Xcode 找不到我试图 link 到的库的位置。

我注意到在 Build Settings 下我可以指定 Link Map File 的路径。我试图将路径硬编码到我的库 (libsteam_api.dylib) 所在的位置,但我遇到了与上述相同的错误。

然后我做了一些有用的事情。

我删除了 Link Binary With Libraries 部分中对库的引用。

然后我将库从其原始位置移动到我的 Xcode 项目目录中。

然后我使用 Link Binary With Libraries 部分中的文件选择窗格从 Xcode 目录中重新选择库。

当我构建时,一切正常。