如何解决我无法让GLEW在ubuntu 20.04C ++中的netbeans上工作
我设法使GLFW3正常工作并正确显示一个窗口,但是当我向项目中添加glewInit()
时,它会告诉我undefined reference to glewInit'
。我正在使用g ++作为编译器,并以-lglfw3
和lGl
作为标志。以下是一个简单的项目来演示我的问题。我在linux上。非常感谢任何帮助。
#include <GL/glew.h>
#include <GL/gl.h>
#include <GLFW/glfw3.h>
#include <iostream>
// settings
const unsigned int SCR_WIDTH = 800;
const unsigned int SCR_HEIGHT = 600;
int main()
{
// glfw: initialize and configure
// ------------------------------
glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MInor,3);
glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);
// glfw window creation
GLFWwindow* window = glfwCreateWindow(SCR_WIDTH,SCR_HEIGHT,"LearnopenGL",NULL,NULL);
if (window == NULL)
{
std::cout << "Failed to create GLFW window" << std::endl;
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// here is the error,my glew is not intializing :(
if(glewInit() != GLEW_OK) {
return 0;
}
// render loop
while (!glfwWindowShouldClose(window))
{
// render
glClearColor(0.2f,0.3f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// glfw: swap buffers and poll IO events (keys pressed/released,mouse moved etc.)
glfwSwapBuffers(window);
glfwPollEvents();
}
// glfw: terminate,clearing all prevIoUsly allocated GLFW resources.
glfwTerminate();
return 0;
}
解决方法
Linux上有一种标准方法来获取一组正确的库来与您的程序链接-请查看man pkg-config
。在您的情况下,您需要链接GLFW3和GLEW都需要的所有内容-因此您应该两次调用pkg-config
:
hekto@ubuntu:~$ pkg-config --libs glfw3
-lglfw
hekto@ubuntu:~$ pkg-config --libs glew
-lGLEW -lGLU -lGL
因此,您需要使用-lglfw
而不是-lglfw3
并添加另外两个库--lGLEW
和-lGLU
。这些对pkg-config
工具的调用也可以直接添加到您的Makefile
中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。