【问题标题】:How can I create a macOS .app bundle for a SFML game?如何为 SFML 游戏创建 macOS .app 包?
【发布时间】:2019-04-23 02:35:51
【问题描述】:

我在 macOS 上,我正在用

编译我的游戏
g++ -F Frameworks -rpath Frameworks {{frameworks}} src/main.cpp -o game

我按照apple developer documents 上的说明进行操作 关于如何创建 macOS .app 包,我有正确的文件夹结构和文件,但我仍然无法启动应用程序。

我收到错误消息:

Dyld Error Message: Library not loaded: @rpath/sfml-window.framework/Versions/2.5.1/sfml-window Referenced from: /Users/USER/*/test.app/Contents/MacOS/game Reason: image not found

我所有的框架包都在test.app/Contents/Frameworks 中,我可以通过./MacOS/game 运行 Contents 文件夹中的二进制文件。但是,如果我只使用框架目录的绝对路径,它就可以工作。

我应该传递什么作为 -rpath 参数?

【问题讨论】:

  • 看不到显示的错误信息,我们无法告诉您出了什么问题。打开 Console.app,然后启动您的应用程序,然后查看显示的错误并通过按“编辑”按钮将它们编辑到您上面的问题中。
  • @user1118321 感谢您的回复,我现在收到了错误消息并编辑了问题!

标签: c++ macos sfml app-bundle


【解决方案1】:

根据this link,您需要在命令行中以这种方式定义您的rpath

-rpath @executable_path/../Frameworks

这应该告诉它在 AppBundle/Contents/Frameworks/ 中查找所有框架。

This 是另一篇关于这个主题的好文章。

【讨论】:

  • 谢谢,它工作得很好。以前不知道有@executable_path 之类的东西,这些链接非常有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 2012-11-15
  • 2011-07-31
  • 2020-02-11
  • 2015-03-22
  • 1970-01-01
相关资源
最近更新 更多