2015-07-19 22 views
2

我想創建一個純C++ OpenGL應用程序包(.app)而不是一個普通的命令行可執行文件。我試圖避免直接使用Obj-C或Cocoa,儘管我使用GLFW,它需要與Cocoa.framework鏈接。Xcode 6:創建純粹的C++ OpenGL應用程序包(.app)而不使用「Cocoa Application」模板

我能夠通過選擇可可應用程序模板並將內容除了Info.plist並將main.m替換爲main.cpp來完成此操作,但通過該過程非常煩人。另外,可能會影響性能/二進制大小的模板之間有重要的項目設置差異嗎?可可應用程序命令行工具模板會影響性能/二進制大小嗎?他們的構建設置非常相似,所以也許我很清楚。

不管怎麼說,我有幾個選擇:

  1. 繼續做我在做什麼(工作,但惱人)
  2. 命令行應用程序模板(更好,但不知道生成應用程序包如果可能的話)

如果答案是1,我最終可能會創建一個自定義目標模板。

回答

0

對於.app,您總是需要一些Objective-C才能夠與用戶進行交互,您必須使用AppKit這是一個Objective-C框架。

但是,答案是簡單地將所有.m文件重命名爲.mm,並使用Objective-C++無縫地允許您在同一個文件中使用Objective-C和C++,但只有很少的限制。

但是我不確定你如何整合GLFW,因爲要獲得鍵盤和鼠標事件,你需要在循環中調用glfwPollEvents(),並且這個事件處理和循環與OSX runloop不一致,所以它可能不會成爲可能。做一個快速的谷歌並沒有給我一個解決方案,所以它需要更多的調查。您可能會被迫忘記GLFW,並在主視圖中使用OpenGL,並使用AppKit進行鼠標/鍵盤輸入。

+1

我認爲GLFW處理所有的管道,因爲到目前爲止遊戲循環和鼠標/鍵盤輸入工作正常,沒有任何Obj-C。不過,我必須鏈接到IOKit,CoreVideo,Cocoa和Opengl框架。另外,我從Info.plist中刪除了「Main nib file base name」和「Principal class」,但我不確定這是否必要。 – Petwoip

相關問題