我想学习使用着色器,因此在Netbeans上创建了一个新的C ++项目(版本8.0.2)。
我希望包含本教程中所述的GLFW和GLEW库:http://www.learnopengl.com/#!Getting-started/Creating-a-window
我认为我成功地包含了图书馆。 (Netbeans在使用#include <GL\glew.h>
或#include <GLFW\glfw3.h>
时没有显示任何错误,因此我认为它会找到所有文件。
我的系统:Windows 10 x64,通过cygwin使用GNU gcc编译器
现在问题是: 当我尝试运行程序时,有以下输出:
"/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()
之外什么都不做,这应该不是问题)
有谁知道这可能意味着什么以及如何解决这个问题?
感谢您的帮助
Erik Brendel
答案 0 :(得分: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项目属性中,include搜索目录应该是 输入构建 - &gt; C编译器 - &gt; 包含目录,而非包含标题。
答案 1 :(得分:0)