在 Ubuntu 13.10 上安装 OpenGL
Installing OpenGL on Ubuntu 13.10
我是一名大学生,试图用 Ubuntu 13.10 设置我的家庭桌面以进行 OpenGL 开发。我已经安装了所有这些库。我们的第一个任务是编写一个简单的程序和一个通用的makefile,可以在学期的剩余时间里工作。这在校园的计算机实验室中非常有效。
我的主文件:
# 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();
}
还有我的制作文件:
STUDENT_NUMBER = 1234567890
TASK = practical
NUMBER =1
OBJECTS=$(addsuffix .o,$(basename $(shell ls *.C)))
WARNING_FLAGS = -Wall -Wextra -Weffc++ -Winit -self -Wmissing -include -dirs -Wswitch -default -Wswitch -enum -Wunused -parameter -Wstrict -overflow=5 -Wfloat -equal -Wshadow -Wc++0x -compat -Wconversion -Wsign -conversion-Wmissing -declarations -Wstrict -null -sentinel -Woverloaded -virtual -Wsign -promo -Werror -pedantic -Wcast -qual
FORMATTING_FLAGS = -fno -pretty -templates -fmessage -length=80 -fdiagnostics -show -option
CFLAGS = ${WARNING_FLAGS} ${FORMATTING_FLAGS} g -std=c++0x -pipe -frepo
LDLIBS = -lGL -lglut -lGLEW -lGLU -lX11 -lXi -lm -lrt -lpng
LDFLAGS =
CC = g++
TARGET = main
all: ${OBJECTS}
${CC} ${LDFLAGS} ${LDLIBS} $^ -o ${TARGET}
%.o: %.c
${CC} ${CFLAGS} -c ${LDFLAGS} $< -o $@
makefile.dep: *.[Ch]
for i in *.C; do gcc -MM "$${i}"; done > $@
include makefile.dep
clean:
rm ${OBJECTS} *.rpo *.gch makefile.dep ${TARGET}
tar:
make clean; tar -cvjf ${STUDENT_NUMBER}_${TASK}_${NUMBER}.tar.bz2 *
尝试在我的家庭桌面上编译时,我得到这些错误:
g++ -lGL -lglut -lGLEW -lGLU -lX11 -lXi -lm -lrt -lpng main.o -o main
main.o: In function `main':
main.C:(.text+0x1e): undefined reference to `glutInit'
main.C:(.text+0x28): undefined reference to `glutInitDisplayMode'
main.C:(.text+0x37): undefined reference to `glutInitWindowSize'
main.C:(.text+0x41): undefined reference to `glutCreateWindow'
main.C:(.text+0x4b): undefined reference to `glutDisplayFunc'
main.C:(.text+0x50): undefined reference to `glutMainLoop'
main.o: In function `display()':
main.C:(.text+0x76): undefined reference to `glClearColor'
main.C:(.text+0x80): undefined reference to `glClear'
main.C:(.text+0x85): undefined reference to `glFlush'
main.C:(.text+0x8a): undefined reference to `glutSwapBuffers'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
我想我可能错过了一些图书馆或其他东西。
如此问题中所述,您需要在链接器命令中引用它们的对象之后指定依赖库:
g++ main.o -lGL -lglut -lGLEW -lGLU -lX11 -lXi -lm -lrt -lpng -o main
我不是 makefile 语法方面的专家,但我认为像这样更改 makefile 的"all"部分可能会起作用:
all: ${OBJECTS}
${CC} ${LDFLAGS} $^ ${LDLIBS} -o ${TARGET}
相关文章:
- 在Ubuntu 16.04上安装Cilk时出现问题
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 如何在全屏模式下(在OpenGL中)使背景透明
- C++:如何在CLion IDE中安装Boost
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- OpenGL 在 VMWare Fusion 版本 10.1.3 上安装的虚拟机 (Ubuntu 16.04) 上崩溃
- 安装OpenGL并在Windows上使用命令行编译
- 在 Ubuntu 13.10 上安装 OpenGL
- OpenGL Aux库的安装
- 安装OpenGL需要什么
- 如何在不安装开发包的情况下获得OpenGL标题
- 如何为Windows C++安装当前版本的OpenGL
- 使用MinGW编译并安装FTGL库以在OpenGL中渲染文本
- 在Ubuntu上安装Eclipse和OpenGL
- 使用GLFW在MacOS上安装OpenGL 3.2+
- 在不安装的情况下运行 OpenGL
- 安装Linux VMware 11 guestmesa驱动程序更新OpenGL