Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Ubuntu 13.10上安装OpenGL_C++_Opengl_Ubuntu_Makefile - Fatal编程技术网

C++ 在Ubuntu 13.10上安装OpenGL

C++ 在Ubuntu 13.10上安装OpenGL,c++,opengl,ubuntu,makefile,C++,Opengl,Ubuntu,Makefile,我是一名大学生,试图用Ubuntu 13.10为OpenGL开发设置我的家庭桌面。我已经安装了所有的库。我们的第一个作业是编写一个简单的程序和一个通用的生成文件,这将在本学期剩下的时间里使用。这在校园的计算机实验室里运行得非常好 我的主.c文件: # include <GL/glut.h> void display(); int main (int argc, char ** argv) { glutInit(&argc , argv); glutInitDisp

我是一名大学生,试图用Ubuntu 13.10为OpenGL开发设置我的家庭桌面。我已经安装了所有的库。我们的第一个作业是编写一个简单的程序和一个通用的生成文件,这将在本学期剩下的时间里使用。这在校园的计算机实验室里运行得非常好

我的主.c文件:

# include <GL/glut.h>

void display();

int main (int argc, char ** argv)
{
  glutInit(&argc , argv);
  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
  glutInitWindowSize(640 , 480) ;
  glutCreateWindow("Practical 1");
  glutDisplayFunc(display);
  glutMainLoop();
  return 0;
}

void display()
{
  glClearColor(0.0 , 0.0 , 1.0 , 1.0);
  glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
  glFlush();
  glutSwapBuffers();
}
我想我可能缺少一些库或其他东西。

如中所述,您需要在链接器命令中引用依赖库的对象之后指定中的依赖库:

g++ main.o -lGL -lglut -lGLEW -lGLU -lX11 -lXi -lm -lrt -lpng -o main
我不是makefile语法方面的专家,但我认为这样更改makefile的“all”部分可能会奏效:

all: ${OBJECTS}
    ${CC} ${LDFLAGS} $^ ${LDLIBS} -o ${TARGET}

成功了,谢谢你。我不认为这会成为问题,因为这个确切的makefile在计算机实验室工作。很高兴知道它工作了!行为上的差异可能是由于不同的编译器版本或环境变量。。。
g++ main.o -lGL -lglut -lGLEW -lGLU -lX11 -lXi -lm -lrt -lpng -o main
all: ${OBJECTS}
    ${CC} ${LDFLAGS} $^ ${LDLIBS} -o ${TARGET}