7

我已经使用 xcode 的 C++ 命令行工具完成了游戏“河内之塔”的简单数字版本。由于习惯了 borland 和 visual-c 等 PC 编译器,我尝试通过简单地附加由 xcode 构建的可执行产品通过电子邮件与他人“共享”游戏。但是,收件人无法运行该程序,因为它以不同的格式显示 - 通常是机器代码,听起来像。

经过一番广泛的搜索,我意识到在 xcode 的 IDE 中构建项目的复杂性以及构建设置/目标的变化等。

任何人都知道如何构建一个独立的 C++ 可执行文件以普遍运行?我不会为了这个游戏离开 STL 库。我将不胜感激任何帮助。

谢谢

4

3 回答 3

5

OS X 基于 Unix,它使用纯二进制文件(即没有文件扩展名)作为可执行文件。如果它们具有一定的“可执行权限”,则可以双击它们作为可执行文件运行,或者从命令行运行。但是,此权限不能通过电子邮件发送 - 它是文件系统本身内的元数据,从安全角度来看这是有道理的(您不希望垃圾邮件发送者通过电子邮件向您发送可执行病毒,对吧?)。因此,当收件人收到二进制文件时,他们需要对其运行以下命令行命令,假设“hanoi”是二进制文件的名称:

chmod +x /path/to/hanoi

如果你真的想把它打包成一个即时双击的应用程序,你需要给它一个原生的 UI 并把它打包成一个 .app,然后把那个 .app (它实际上是一个带有 .app 扩展名的文件夹)在存档中分发。对不起,如果这比你希望的更多。希望这可以帮助!

于 2010-08-29T19:42:44.313 回答
0

如果您对命令行工具而不是可双击的应用程序感到满意,只需将其压缩并将其附加到电子邮件中即可。如果您要发送给的任何人可能使用基于 PowerPC 的 Mac,请务必构建通用。哦,将部署目标设置为任何接收者可能使用的最低操作系统。

于 2010-08-29T22:43:37.220 回答
0

在 Mac 上跨相同操作系统的 dot 版本共享应用程序是出了名的困难(至少,就个人经验而言)。

为了能够以最少的努力共享您的应用程序,您需要弄清楚:

  • 这是什么项目类型?您是否使用图像等资源?
  • 您的朋友使用的是什么版本的操作系统?如果它们不在 Mac 上,那么你就不走运了(或者你必须为它们的操作系统重新编译)。
  • 如果他们运行 Mac,请检查您是否具有相同的操作系统版本,如果您在 Leopard 上开发并且有人在 SnowLeopard 上运行,您的应用程序可能会失败。(我也遇到了 Mac OS 10.5.4 和 10.5.3 之间的问题,所以请多多指教。)
  • 查看您正在运行的硬件类型。您是只为您的硬件(比如 MacIntel)构建,还是在创建通用二进制文件?
  • 确保所有资源都打包到您的应用程序包中。确保您的应用程序仅使用相对路径。
  • 检查您是否没有写入特殊文件夹(即temp,如果需要,仅使用和/或可写字的位置)。

我希望我能给出更详细/中肯的答复,但不幸的是,您必须自己找出一些答案(没有任何其他有关您遇到的错误的具体信息)。

于 2010-08-29T19:08:45.450 回答