在MacOS上创建一个dylib文件,用于Steamworks API的Python包装器

Gol*_*lin 10 c++ python xcode dylib steamworks-api

我是一个业余爱好者程序员,试图将SteamworksForPython API集成到基于Python的游戏中.此API是Steamworks API的Python包装器,它仅正式支持C++.我正在研究MacOS Sierra 10.12.6.

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

  1. 我已经下载了SteamworksForPython回购.
  2. 我已将Steamworks SDK(/ sdk/public/steam)中的steam头目录添加到该repo.
  3. 我已经在该repo中添加了适用于我的操作系统的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添加到Compile Sources列表中.
  3. 我已将steam_api.h添加到Headers列表中(在公共列表下,而不是私有或项目中).
  4. 我已将libsteam_api.dylib添加到Link Binary With Libraries部分.

但是,当我尝试构建时,我收到了一个错误.这是一个截图:

在此输入图像描述

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

在此输入图像描述

看完这个,这个这个,我觉得问题是,Xcode的不知道去哪里找我试图链接到库,所以我需要告诉它在哪里看.这应该很简单,但我无法做到.

谁能给我建议如何继续?


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

Gol*_*lin 4

我设法解决了这个问题。

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

我注意到在“构建设置”下我可以指定“链接映射文件的路径”。我尝试对我的库 (libsteam_api.dylib) 所在位置的路径进行硬编码,但出现了上述相同的错误。

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

我删除了“链接二进制文件与库”部分中对该库的引用。

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

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

当我构建时,一切都运行良好。