繁体   English   中英

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

[英]xcode's executable product for c++ project

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

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

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

谢谢

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

chmod +x /path/to/hanoi

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

在Mac上,在相同操作系统的点发行版之间共享应用程序可能是非常困难的(至少就个人经验而言)。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM