在Ubuntu上使用GLFW设置OpenGL NetBeans项目

Setting up OpenGL NetBeans project with GLFW on Ubuntu

本文关键字:设置 OpenGL NetBeans 项目 GLFW Ubuntu      更新时间:2023-10-16

我正在尝试在Ubuntu上设置OpenGL开发环境。我安装了包括GLFW在内的所有库,因为我不想使用GLUT。GLEW lib也已安装。我正试图将其全部设置在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 _glfwplatformminit '中:/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链接所有这些库??

我找到解决办法了。对于感兴趣的人:open项目属性。然后"连接器" -> "库"。在Libraries对话框中:点击"添加选项" -> "其他选项"。在文本框中插入这些参数:

-lGLEW -lglfw -lGL -lGLU -lX11 -lpthread -lXxf86vm -lm

我猜只有当你使用旧的OpenGL版本时才需要lGLU。