简体   繁体   English

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

[英]Setting up OpenGL NetBeans project with GLFW on Ubuntu

I am trying to setup OpenGL developing environment on Ubuntu.I installed all the libs including GLFW as I don't want to use GLUT.GLEW lib has been installed too.I am trying to set it all in NetBeans.I have never used it before and currently I am getting : 我正在尝试在Ubuntu上设置OpenGL开发环境。我安装了包括GLFW在内的所有库,因为我不想使用GLUT.GLEW lib也已安装。我试图在NetBeans中设置它。我从未使用它之前和目前我得到:

undefined reference to `glfwInit' error while running this simple code: 运行这个简单代码时未定义的对“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;
}

I am sure it is linker related problem.So I have added libglfw.a to Linker->Libraries and then got even more errors like these: 我确定它是链接器相关的问题。所以我已经将libglfw.a添加到Linker-> Libraries,然后得到更多这样的错误:

make[2]: Entering directory /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): In function _glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function _glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function _glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function _glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function _glfwPlatformTerminate': /usr/lib/libglfw.a(x11_init.o): In function _glfwPlatformTerminate': /usr/lib/libglfw.a(x11_window.o): In function translateKey': /usr/lib/libglfw.a(x11_window.o): In function translateKey': /usr/lib/libglfw.a(x11_window.o): In function translateKey': /usr/lib/libglfw.a(x11_window.o): In function translateChar': ........... ........................ 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': /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 x11_init.o)中:在函数_glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function x11_init.o):在函数_glfwPlatformInit': /usr/lib/libglfw.a(x11_init.o): In function ):函数_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_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 usr / lib / libglfw.a(x11_window.o)中:在函数translateKey': /usr/lib/libglfw.a(x11_window.o): In function usr / lib / libglfw.a(x11_window.o)中:在函数中translateKey': /usr/lib/libglfw.a(x11_window.o): In function translateChar'中:........... ................. .......

What else should I link or install? 我还应该链接或安装什么?

Update: Here it is said one should add LIBRARIES='-pthread -lglfw -lGL -lX11 -lGLU -lXxf86vm' But where should I add those in NetBeans properties? 更新: 这里有人说应该添加LIBRARIES =' - pthread -lglfw -lGL -lX11 -lGLU -lXxf86vm'但是我应该在NetBeans属性中添加哪些内容? I tried put into the MakeFile and "linker options" too and nothing helped. 我尝试将MakeFile和“链接器选项”放入其中并且没有任何帮助。

Update1 Compiling the main.cpp manually using this command: Update1使用此命令手动编译main.cpp:

**g++ main.cpp  -o Game -lglfw -lGL -lGLU -lX11 -lpthread -lXxf86vm -lm**

Compiles fine.How do I link all these libs via NetBeans??? 编译正常。如何通过NetBeans链接所有这些库?

I figured out the solution.For those interested: Openg Project properties.Then "Linker" -> "Libraries" . 我找到了解决方案。对于那些感兴趣的人:打开项目属性。然后“链接器” - > “库” In the Libraries dialog: Click "Add Option" -> "Other Option" . 在“库”对话框中:单击“添加选项” - > “其他选项” In the textfield insert these params: 在文本字段中插入以下参数:

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

I guess lGLU is needed only if you use the old OpenGL version. 我想只有你使用旧的OpenGL版本才需要lGLU。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM