xcode的c ++项目可执行产品

时间:2010-08-29 19:01:10

标签: c++ xcode universal

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

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

任何人都知道如何构建一个自包含的c ++可执行文件,以便普遍运行?我不会在这个游戏的STL库之外。我非常感谢任何帮助。

感谢

3 个答案:

答案 0 :(得分:5)

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

chmod +x /path/to/hanoi

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

答案 1 :(得分:0)

在相同操作系统的点发行版中共享应用程序在Mac上可能是出了名的难度(至少就个人经验而言)。

为了能够以最少的努力分享您的申请,您需要弄清楚:

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

我希望我能给出更详细的答案,但不幸的是,你必须自己弄清楚一些答案(没有任何关于你得到的错误的其他具体信息)。

答案 2 :(得分:0)

如果您对命令行工具而不是双击应用程序感到满意,则将其压缩并将其附加到电子邮件就足够了。如果您发送的任何人可能正在使用基于PowerPC的Mac,请确保构建通用。哦,并将部署目标设置为任何收件人可能正在使用的最小操作系统。