Xcode 非终端 C++ 项目
Posted
技术标签:
【中文标题】Xcode 非终端 C++ 项目【英文标题】:Xcode Non-terminal C++ project 【发布时间】:2012-06-30 21:32:02 【问题描述】:我是一个业余的 mac 用户,我正在尝试在 Xcode 中制作一个 c++ 项目。无论我走到哪里,我都被告知要在 Xcode 中创建一个命令行工具项目。
这令人沮丧,因为我打算制作一个 OpenGL 应用程序,所以我不希望它成为一个控制台应用程序。
这可能是一个非常业余的问题,但我对 Mac 并不熟悉。如何在 Xcode 中制作一个非控制台(终端)的 C++ 应用程序,我可以在其中制作我的 OpenGL 应用程序?
编辑:我可以将 SDL 用于窗口而不是可可吗?
【问题讨论】:
【参考方案1】:您必须创建一个 Cocoa 应用程序,并将文件的扩展名从 .m
更改为 .mm
。这告诉编译器您还将使用 C++ 和 Objective-C。
Mac 处理窗口的方式几乎需要使用 Objective-C,因此您需要基础 Cocoa 来制作窗口和 GL 视图,然后您就可以像往常一样用 C++ 编写其余部分。
如果你真的想完全使用 C++,你可以使用像 GLUT 这样的框架来处理窗口本身。
【讨论】:
SDL 也可以,但它需要一个支持的 Objective-C 文件。我曾经在网上某处找到它 - 我会尝试找到一个链接。 @DavidC:你可以使用 GLFW,它可以很好地完成所有 Cocoa / Obj-C 的工作。【参考方案2】:在这种情况下,您可能确实需要一个命令行项目。
Xcode 模板将包含一个 Cocoa nib,如果您通过调用另一个库来执行所有 GUI,它是一个纯 C++ 项目,不需要这些模板。
如果您要让它看起来像是一个 OSX 应用程序,它是一个可以直接从 Finder 或 Dock 运行的 .app 包,您可能需要做更多的事情。在这种情况下,选择一个 Cocoa 应用程序并删除 main.m(替换为 main.cc)和 nib。
【讨论】:
仍然,您不想要一个用于 GUI 应用程序的 appbundle,而不是一个普通的可执行文件吗?【参考方案3】:您可以创建一个 Cocoa 应用程序并使用本机 API 设置 OpenGL 上下文,然后将您的 C++ 代码集成到其中,或者您可以创建一个使用 GLUT 库来设置 OpenGL 的命令行应用程序。这是两种主要方式。
注意:OS X 上的 GLUT 还不支持 OpenGL 3+,我不认为。
【讨论】:
以上是关于Xcode 非终端 C++ 项目的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Xcode 和终端在 Mac OS 上使用 OpenGL 库编译 c++ 文件