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 - 终端程序的 C++ 代码将无法运行

无法使用 Xcode 和终端在 Mac OS 上使用 OpenGL 库编译 c++ 文件

Xcode打开终端(Terminal)进行git 相关操作

如何仅使用 XCode 6(无终端)将现有项目添加到 Git 控件?

Xcode 中的 OpenCV C++ 错误

Xcode 命令行工具 (XCode 4.6) 从终端运行单元测试