我正在尝试在 Ubuntu 上设置 OpenGL 开发环境。我安装了所有库,包括 GLFW,因为我不想使用 GLUT。GLEW 库也已安装。我试图在 NetBeans 中设置它。我从未使用过它之前和现在我得到:
运行此简单代码时未定义对“glfwInit” 错误的引用:
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <GL/glew.h>
#include <GL/glfw.h>
#include "glm.hpp"
using namespace std;
using namespace glm;
int main(int argc, char** argv) {
/* init GLFW */
if(!glfwInit()){
fprintf(stderr,"failed to init GLFW");
}
return 0;
}
我确定这是与链接器相关的问题。所以我将 libglfw.a 添加到 Linker->Libraries 中,然后出现更多错误,如下所示:
make[2]: 进入目录/home/sasmaster/NetBeansProjects/OpenGLDemo'
mkdir -p dist/Debug/GNU-Linux-x86 g++ -o dist/Debug/GNU-Linux-x86/opengldemo build/Debug/GNU-Linux-x86/main.o /usr/lib/libglfw.a
/usr/lib/libglfw.a(window.o): In function
glfwOpenWindow': /usr/lib/libglfw.a(x11_init.o): 在函数_glfwPlatformInit':
/usr/lib/libglfw.a(x11_init.o): In function
_glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): 在函数_glfwPlatformInit':
/usr/lib/libglfw.a(x11_init.o): In function
_glfwPlatformInit': /usr /lib/libglfw.a(x11_init.o):在函数_glfwPlatformTerminate':
/usr/lib/libglfw.a(x11_init.o): In function
_glfwPlatformTerminate'中:/usr/lib/libglfw.a(x11_window.o):在函数translateKey':
/usr/lib/libglfw.a(x11_window.o): In function
translateKey'中:/usr/lib/libglfw.a(x11_window.o):在函数translateKey':
/usr/lib/libglfw.a(x11_window.o): In function
translateChar' 中:......................................
我还应该链接或安装什么?
更新: 据说应该添加 LIBRARIES='-pthread -lglfw -lGL -lX11 -lGLU -lXxf86vm' 但是我应该在哪里添加那些 NetBeans 属性?我也尝试放入 MakeFile 和“链接器选项”,但没有任何帮助。
Update1 使用以下命令手动编译 main.cpp:
**g++ main.cpp -o Game -lglfw -lGL -lGLU -lX11 -lpthread -lXxf86vm -lm**
编译正常。如何通过 NetBeans 链接所有这些库???