11

我是一名业余程序员,试图将SteamworksForPython API集成到基于 Python 的游戏中。此 API 是Steamworks API的 Python 封装,仅官方支持 C++。我正在使用 MacOS Sierra 10.12.6。

盲目地遵循文档,我做了以下事情:

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

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

查看 Linux 和 Windows 的过程,似乎我需要使用 repo 的 SteamworksPy.cpp 文件和 Steamworks SDK 中的 steam_api.h 头文件来创建这个动态库文件。

我研究了如何使用 Xcode 创建一个 dylib 文件,目前正在尝试这样做。该过程似乎类似于使用 Visual Studio 的 Windows文档中描述的过程。

我做了以下事情:

  1. 我创建了一个纯 C++ 动态库类型的新 Xcode 项目。
  2. 我已将 SteamworksPy.cpp 添加到编译源列表中。
  3. 我已将 steam_api.h 添加到Headers列表(在公共、非私有或项目下)。
  4. 我已将 libsteam_api.dylib 添加到Link Binary With Libraries部分。

但是,当我尝试构建时出现错误。这是一个屏幕截图:

在此处输入图像描述

这是链接器错误的更明确的屏幕截图:

在此处输入图像描述

在阅读了 thisthisthis之后,我认为问题在于 Xcode 不知道在哪里寻找我要链接的库,所以我需要告诉它在哪里寻找。这应该很简单,但我无法做到。

谁能给我关于如何进行的建议?


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

4

1 回答 1

4

我设法解决了这个问题。

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

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

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

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

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

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

当我建造时,一切都很好。

于 2017-12-07T03:11:44.313 回答