【发布时间】:2017-01-21 07:18:29
【问题描述】:
我正在尝试在 Ubuntu 14.04 64 位 x86 上使用 NetBeans v8.1 编译第 9 版“OpenGL 编程指南”中的示例代码。示例代码为 triangles.cpp,本书的第一个示例代码,可从here下载。我在项目属性对话框的“链接器”选项卡中添加了如下信息: 您可以看到“Additional Library Directories”、“Libraries”和“Additional Options”字段中填满了所需且正确的信息(至少我是这么认为的)。
但是,当我通过单击 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 并且错误仍然存在。那么,如何在 NetBeans 中成功编译 linux 上的 triangles.cpp 代码呢?非常感谢。
【问题讨论】:
-
"好像
dlclose是一个vulkan函数" 不,it's not。 -
好的,我添加了-ldl,但错误信息又回到了它的起源:未定义的对'gl3wGenVertexArrays'的引用,对'gl3wBindVertexArray'的未定义引用,对'gl3wCreateBuffers'的未定义引用,等等。
标签: opengl netbeans linker glfw