2013-10-02 33 views
2

我正在將一個用於linux的開源C++程序移植到os x中。基於這個職位的建議我已經改變線路從這個當我在我的xcode項目中使用#include <OpenGL/gl.h>行時,它在哪裏查找gl.h文件?

#include <GL/gl.h> 

這個

#include <OpenGL/gl.h> 

How do I use Open GL in a C++ project that I am porting from Linux

這種變化擺脫了編譯器錯誤的,但我很困惑: xcode /它使用的C++編譯器在哪裏查找該文件?如果我搜索我的xcode項目,我沒有看到名爲OpenGL或文件= gl.h的目錄?

我習慣於在基於.html文件的工作目錄的網頁中包含圖像或JavaScript庫。 xcode在這裏發生了其他事情。

回答

4

在Mac上,您將從OpenGL框架中獲得這些標頭。標題是位於:

/System/Library/Frameworks/OpenGL.framework/Headers 

嚴格地說,這條道路是一個符號鏈接 - 真正的位置是:

/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers 

你的工具鏈將能夠找到他們,如果你的編譯器通過-framework OpenGL /鏈接器命令行。

1

如果您已經將OpenGL框架添加到您的項目中,那麼Xcode將將OpenGL/解析爲「OpenGL.framework內當前版本的標頭文件夾」。這些文件不會複製到您的項目中,您不必擔心框架在磁盤上的存儲位置或內部佈局。

從Xcode 5開始,如果啓用了模塊支持,則只需使用@import OpenGL;即可在該編譯器單元中包含這些符號,並確保該鏈接稍後會包含該框架。

+0

真的嗎?這不會在C++項目中產生分析錯誤嗎? –

+0

@ AndonM.Coleman對我來說,它立即就不清楚了,但我預計不會 - 所以這是我的錯誤。快速修復:編譯爲Objective-C++。例如。在Xcode的右側實用程序視圖中更改文件類型,將文件擴展名更改爲.mm。 – Tommy

相關問題