2016-03-18 31 views
0

我想学习使用着色器,因此在Netbeans(8.0.2版)上创建了一个新的C++项目。在Netbeans中使用gcc

我想包括GLFW和GLEW库就像在本教程中指出:http://www.learnopengl.com/#!Getting-started/Creating-a-window

我想我包括图书馆的成功。 (当使用#include <GL\glew.h>#include <GLFW\glfw3.h>时,Netbeans显示没有错误,所以我认为它找到所有文件)。

我的操作系统:Windows 10 64,使用GNU gcc编译器通过Cygwin

现在,这里的问题是: 当我尝试运行的程序,有以下输出:

"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf 
make[1]: Entering directory '/cygdrive/c/Users/Erik/programming/projects/FinallyShaders' 
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/Cygwin-Windows/finallyshaders.exe 
make[2]: Entering directory '/cygdrive/c/Users/Erik/programming/projects/FinallyShaders' 
mkdir -p build/Debug/Cygwin-Windows 
rm -f "build/Debug/Cygwin-Windows/main.o.d" 
gcc -c -g -include /cygdrive/C/Users/Erik/programming/Libraries/glew-1.13.0-win32/glew-1.13.0/include/GL -include /cygdrive/C/Users/Erik/programming/Libraries/glfw-3.1.2.bin.WIN32/glfw-3.1.2.bin.WIN32/include/GLFW -MMD -MP -MF "build/Debug/Cygwin-Windows/main.o.d" -o build/Debug/Cygwin-Windows/main.o main.c 
cc1: fatal error: /cygdrive/C/Users/Erik/programming/Libraries/glew-1.13.0-win32/glew-1.13.0/include/GL: No such file or directory 
compilation terminated. 
nbproject/Makefile-Debug.mk:66: recipe for target 'build/Debug/Cygwin-Windows/main.o' failed 
make[2]: *** [build/Debug/Cygwin-Windows/main.o] Error 1 
make[2]: Leaving directory '/cygdrive/c/Users/Erik/programming/projects/FinallyShaders' 
nbproject/Makefile-Debug.mk:59: recipe for target '.build-conf' failed 
make[1]: *** [.build-conf] Error 2 
make[1]: Leaving directory '/cygdrive/c/Users/Erik/programming/projects/FinallyShaders' 
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed 
make: *** [.build-impl] Error 2 

BUILD FAILED (exit value 2, total time: 722ms) 

它似乎失败了,因为gcc编译器(或更确切地说它的cc1部分)找不到该库的include-directory。但是,如前所述,路径是正确的。当使用cd <the path that cannot be found>时,一切正常,cygwin找到了这条路径。

(我的程序做什么,但呼吁printf()到现在为止,这不应该成为问题)

有谁知道这代表着什么,以及如何解决这个问题?

感谢您的帮助

埃里克·布伦德尔

回答

3

你没有编译器命令行是:

gcc -c -g \ 
-include /cygdrive/C/Users/Erik/programming/Libraries/glew-1.13.0-win32/glew-1.13.0/include/GL \ 
-include /cygdrive/C/Users/Erik/programming/Libraries/glfw-3.1.2.bin.WIN32/glfw-3.1.2.bin.WIN32/include/GLFW \ 
-MMD -MP -MF "build/Debug/Cygwin-Windows/main.o.d" \ 
-o build/Debug/Cygwin-Windows/main.o main.c 

要修复报告的错误:

cc1: fatal error: /cygdrive/C/Users/Erik/programming/Libraries/glew-1.13.0-win32/glew-1.13.0/include/GL: No such file or directory 

它应该是:

gcc -c -g \ 
-I/cygdrive/C/Users/Erik/programming/Libraries/glew-1.13.0-win32/glew-1.13.0/include/GL \ 
-I/cygdrive/C/Users/Erik/programming/Libraries/glfw-3.1.2.bin.WIN32/glfw-3.1.2.bin.WIN32/include/GLFW \ 
-MMD -MP -MF "build/Debug/Cygwin-Windows/main.o.d" \ 
-o build/Debug/Cygwin-Windows/main.o main.c 

您已经混淆编译器选项-include-I。见the documentation of these options 这里是一个pretty good introductory tutorial to the use of GCC

在NetBeans项目属性后,包括搜索,目录应 在构建进入 - >C编译器 - >包含目录,不包括报头的

+0

谢谢,那实际上删除了那个错误。 Netbeans不知道如何使用gcc(我没写过这个命令行,它是由Netbeans自动生成的) 有没有办法在Netbeans设置中编辑它?我不想每次都手动补充... 而且很遗憾,出现下一个错误:在main.c中,我使用'#include '。这行现在抛出错误,glew.h不存在(没有这样的文件或目录:GL/glew.h),即使文件_is_在那里。 ('ls -al '显示文件glew.h) –

+0

@ErikBrendel查看更新后的答案。 –

+0

噢好吧,这是有道理的。我只是没有看到这个选项 –

0

您是否正在为Netbeans配置proyect链接器?这意味着告诉IDE您将使用默认情况下不添加的库,只需使用include命令,例如math.h库(记住您必须通过命令promp使用-lm进行编译,这是同样的事情)。

这可以通过运行项目配置自定义链接程序库(点击按钮说...)来完成。 enter image description here

然后,您单击添加pkgconfig库或标准(对于像unix系统中的math.h或pthread),然后搜索您希望添加的库。 enter image description here

+0

我认为所需的图书馆在那里。它看起来像[this](http://imgur.com/lgVMZsL) –