2010-11-14 47 views
0

我試圖使用NetBeans開發在Mac上使用C++ OpenGL程序,並有一定的編譯錯誤:MAC + Netbeans的C++ OpenGL的問題

「的/ usr/bin中/使」 -f nbproject文件/ Makefile中釋.mk QMAKE = SUBPROJECTS = .build-conf 「/ usr/bin/make」-f nbproject/Makefile-Release.mk dist/Release/GNU-MacOSX/sdl_test mkdir -p build/Release/GNU-MacOSX rm -f build/release/GNU-MacOSX/main.od g ++ -c -O2 -MMD -MP -MF build/Release/GNU-MacOSX/main.od -o build/Release/GNU-MacOSX/main.o main .cpp main.cpp:9:41:warning:OpenGL.framework/Headers/gl.h:沒有這樣的文件或目錄

我的代碼是如此簡單:

#include <iostream> 
#include <OpenGL.framework/Headers/gl.h> 

/* 
* 
*/ 
int main(int argc, char** argv) { 
    std::cout << glGetString(GL_VERSION) << std::endl; 

    return 0; 
} 

編譯器無法找到,即使我已經添加在項目設置中包括路徑和庫文件OpenGL頭文件。這真是令人困惑..

回答

4

在您的項目屬性中,轉至C++ Compiler。在Include Directories下加/System/Library/Frameworks。在Linker底部的Additional Options下加-framework OpenGL

更改您的include指令#include <OpenGL/gl.h>

現在你應該可以編譯程序。但我似乎失去了一些東西,因爲我得到一個分段錯誤,當我打電話glGetString ...

#include <iostream> 
#include <OpenGL/gl.h> 

int main(int argc, char** argv) { 
    const GLubyte* version = glGetString(GL_VERSION); // segmentation fault 

    return 0; 
} 
+1

你缺少OpenGL上下文的創建,你不能叫GL功能,而不之一。 – 2010-11-14 11:58:58

+0

嘿bjoernz,它終於起作用了!但我在這裏有幾個問題:1.我可以理解添加「/系統/庫/框架」到「包含目錄」,但爲什麼我可以直接包含「」呢?路徑名應該是「OpenGL.framework/headers/gl.h」。2.這種方法不提供鏈接器的lib文件提示,但鏈接器如何找到lib文件? – Alan 2010-11-14 15:57:26

+0

Apple推出了'-framework'選項,該選項將''變成了幕後的正確路徑。它還爲鏈接器提供必要的信息。您可以在http://developer.apple.com/tools/gcc_overview.html上閱讀關於該主題的更多信息 – bjoernz 2010-11-14 17:28:53

0

您的編譯器無法在其搜索路徑中找到引用的頭文件。嘗試在硬盤上手動查找文件,然後確保編譯器在其搜索路徑中具有該位置。