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

NBG*_*NBG 7 c++ xcode universal

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

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

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

谢谢

bto*_*own 5

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

chmod +x /path/to/hanoi
Run Code Online (Sandbox Code Playgroud)

如果你真的想将它打包为一个瞬间双点击应用程序,你需要给它一个原生的UI和打包为一个名为.app,然后把那个.应用程序(实际上是与.app扩展名的文件夹)在档案馆中分发.对不起,如果这比你希望的更多的工作.希望这可以帮助!


dir*_*tly 0

在 Mac 上,跨同一操作系统的不同版本共享应用程序可能非常困难(至少就个人经验而言)。

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

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

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