首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xcode针对c++项目的可执行产品

xcode针对c++项目的可执行产品
EN

Stack Overflow用户
提问于 2010-08-30 03:01:10
回答 3查看 5.9K关注 0票数 7

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

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

有人知道如何构建一个自包含的c++可执行文件以供通用运行吗?我不会离开STL库来玩这个游戏。如果有任何帮助,我将非常感激。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2010-08-30 03:42:44

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

代码语言:javascript
复制
chmod +x /path/to/hanoi

如果您真的希望将其打包为可立即双击的应用程序,则需要为其提供原生UI并将其打包为.app,然后将该.app (实际上是一个带有.app扩展名的文件夹)放入存档中进行分发。抱歉,如果这比你期望的要多的话。希望这能有所帮助!

票数 5
EN

Stack Overflow用户

发布于 2010-08-30 03:08:45

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

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

  • 这是什么项目类型?你在使用图片等资源吗?
  • 你的朋友使用的是什么版本的操作系统?
  • 如果他们运行的是Mac,检查一下你们是否有相同的操作系统版本,如果你是在Leopard上开发的,而有人在SnowLeopard上运行,那么你的应用程序可能就会失败。(我也遇到了MacOS10.5.4和10.5.3之间的问题,所以请保持手指crossed.)
  • Check您正在运行的是哪种硬件。您是仅为您的硬件(例如MacIntel)构建,还是正在创建通用二进制文件?
  • 确保所有资源都打包到您的应用程序包中。确保您的应用程序仅使用相对路径。
  • 检查您是否没有写入特殊文件夹(即,如果需要,仅使用temp和/或word可写位置)。

我希望我能给出一个更详细的/切中要点的回答,但不幸的是,你必须自己找出一些答案(没有任何其他关于你得到的错误的具体信息)。

票数 0
EN

Stack Overflow用户

发布于 2010-08-30 06:43:37

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3596138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档