如何在NetBeans 8.1中设置以成功编译使用GLFW的OpenGL代码

如何在NetBeans 8.1中设置以成功编译使用GLFW的OpenGL代码,opengl,netbeans,linker,glfw,Opengl,Netbeans,Linker,Glfw,我试图在Ubuntu 14.04 64位x86上使用NetBeans v8.1编译第9版“OpenGL编程指南”中的示例代码。示例代码是triangles.cpp,这是本书的第一个示例代码,可从下载。我在“项目属性”对话框的“链接器”选项卡中添加了以下信息: 您可以看到,“附加库目录”、“库”和“附加选项”字段中填充了所需的正确信息(至少我认为是这样) 但是,当我通过单击IDE中的“清理并构建项目”按钮来构建项目时,出现了大量错误: g++ -c -g -I/home/me/Compute

我试图在Ubuntu 14.04 64位x86上使用NetBeans v8.1编译第9版“OpenGL编程指南”中的示例代码。示例代码是triangles.cpp,这是本书的第一个示例代码,可从下载。我在“项目属性”对话框的“链接器”选项卡中添加了以下信息: 您可以看到,“附加库目录”、“库”和“附加选项”字段中填充了所需的正确信息(至少我认为是这样)

但是,当我通过单击IDE中的“清理并构建项目”按钮来构建项目时,出现了大量错误:

g++    -c -g -I/home/me/ComputerGraphics/include -I/home/me/glfw-3.2.1/include -MMD -MP -MF "build/Debug/GNU-Linux/01-triangles.o.d" -o build/Debug/GNU-Linux/01-triangles.o 01-triangles.cpp
mkdir -p dist/Debug/GNU-Linux
g++     -o dist/Debug/GNU-Linux/opengl1 build/Debug/GNU-Linux/01-triangles.o -L/home/me/glfw-3.2.1/bin/lib -Wl,-rpath,/home/me/glfw-3.2.1/bin/lib -lglfw3 -pthread -ldl -lGLU -lGL -lrt -lXrandr -lXxf86vm -lXi -lXinerama -lX11
build/Debug/GNU-Linux/01-triangles.o: In function `init()':
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:27: undefined reference to `gl3wGenVertexArrays'
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:28: undefined reference to `gl3wBindVertexArray'
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:35: undefined reference to `gl3wCreateBuffers'
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:36: undefined reference to `gl3wBindBuffer'
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:37: undefined reference to `gl3wBufferStorage'
/home/me/ComputerGraphics/OpenGL1/01-triangles.cpp:46: undefined reference to `LoadShaders'
......

我以前认为它与vulkan有关,但现在我添加了-ldl,错误依然存在。那么,如何在linux上在NetBeans中成功编译triangles.cpp代码呢?非常感谢。

事实证明,除了GLFW之外,我还需要一个GL3W库。遵循以下步骤(基于我在NetBeans中已经设置的设置):

(1) 转到安装GL3W,或使用本书附带的现有文件

(2) 将链接器标志设置为:

-pthread -ldl -lGLU -lGL -lrt -lXrandr -lXxf86vm -lXi -lXinerama -lX11 -lXcursor
注意:-ldl-lXcursor标志在前面的线程中没有提到,但确实需要

(3) 将gl3w.c和LoadShaders.cpp添加到源文件

(4) 在LoadShaders.cpp的开头添加
#包括


(5) 编译完成

“似乎
dlclose
是一个vulkan函数”否,.OK,我添加了-ldl,但错误消息返回到它的来源:未定义对“gl3wgenvertexarray”的引用,未定义对“gl3wBindVertexArray”的引用,未定义对“gl3wCreateBuffers”的引用。。。等