Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
代码6:创建纯C++;OpenGL应用程序包(.app),不使用;可可应用“;模板 我试图创建一个纯C++ OpenGL应用程序包(.app),而不是一个简单的命令行可执行文件。我试图避免直接使用Obj-C或Cocoa,尽管我使用的是GLFW,它需要与Cocoa.framework链接_C++_Macos_Cocoa_Opengl_Xcode6 - Fatal编程技术网

代码6:创建纯C++;OpenGL应用程序包(.app),不使用;可可应用“;模板 我试图创建一个纯C++ OpenGL应用程序包(.app),而不是一个简单的命令行可执行文件。我试图避免直接使用Obj-C或Cocoa,尽管我使用的是GLFW,它需要与Cocoa.framework链接

代码6:创建纯C++;OpenGL应用程序包(.app),不使用;可可应用“;模板 我试图创建一个纯C++ OpenGL应用程序包(.app),而不是一个简单的命令行可执行文件。我试图避免直接使用Obj-C或Cocoa,尽管我使用的是GLFW,它需要与Cocoa.framework链接,c++,macos,cocoa,opengl,xcode6,C++,Macos,Cocoa,Opengl,Xcode6,我可以通过选择Cocoa应用程序模板并删除除Info.plist之外的所有内容并将main.m替换为main.cpp来实现这一点,但这一过程非常烦人。另外,Cocoa应用程序和命令行工具模板之间是否存在影响性能/二进制大小的重要项目设置差异?他们的构建设置非常相似,所以也许我是清楚的 无论如何,我有几个选择: 继续做我正在做的事情(工作,但烦人) 从命令行应用程序模板生成应用程序包(更好,但不确定是否可能) 如果答案是1,我可能最终会创建一个自定义目标模板。对于.app您将始终需要一些Objec

我可以通过选择Cocoa应用程序模板并删除除Info.plist之外的所有内容并将main.m替换为main.cpp来实现这一点,但这一过程非常烦人。另外,Cocoa应用程序和命令行工具模板之间是否存在影响性能/二进制大小的重要项目设置差异?他们的构建设置非常相似,所以也许我是清楚的

无论如何,我有几个选择:

  • 继续做我正在做的事情(工作,但烦人)
  • 从命令行应用程序模板生成应用程序包(更好,但不确定是否可能)

  • 如果答案是1,我可能最终会创建一个自定义目标模板。

    对于
    .app
    您将始终需要一些Objective-C,以便能够与用户交互,您将不得不使用
    AppKit
    ,这是一个Objective-C框架

    < >但是,答案是简单地将所有的<代码> .m>代码>文件改写为<代码> .mm < /Cord>,并使用Objto-C++,它可以让您在同一个文件中同时使用ObjuleC和C++,很少有限制。
    但是我不确定如何集成GLFW,因为为了获得键盘和鼠标事件,需要在循环中调用
    glfwPollEvents()
    ,而此事件处理和循环与OSX runloop不一致,因此可能无法实现。快速谷歌搜索并没有向我展示一个解决方案,所以它需要更多的调查。您可能被迫忘记GLFW,在主视图中使用OpenGL,并使用AppKit进行鼠标/键盘输入。

    我认为GLFW可以处理所有的管道,因为到目前为止,游戏循环和鼠标/键盘输入在没有任何Obj-C的情况下运行良好。不过,我必须与IOKit、CoreVideo、Cocoa和OpenGL框架链接。另外,我从Info.plist中删除了“Main nib file base name”和“Principal class”,但我不确定这是否必要。