我浏览了this有关如何安装Mesa(OpenGL)的教程。一切都按照描述运作。但是当我尝试将完美运行的构建命令放入makefile时,它不会。
这是我的makefile:
all:
gcc -lglut -IGL -IGLEW -IGLU main.c -o OpenGLExample
如果我输入make,我会得到:
gcc -lglut -IGL -IGLEW -IGLU main.c -o OpenGLExample
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glClearColor'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glClear'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glColor3f'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glOrtho'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glBegin'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glVertex2f'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glVertex2f'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glVertex2f'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glVertex2f'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glEnd'
/tmp/ccKVrQAu.o:main.c:function renderFunction: error: undefined reference to 'glFlush'
collect2: ld returned 1 exit status
make: *** [all] Error 1
我在教程中使用的是Ubuntu而不是Mint。
我做错了什么?
答案 0 :(得分:2)
您没有将OpenGl库传递给链接器。您应该输入I
:
l
all:
gcc main.c -lglut -lGL -lGLEW -lGLU -o OpenGLExample
您还应该传递编译器可以找到OpenGL头文件的目录,这可以使用-I
完成,也可能是一个选项(或选项)指定链接器应该查找库的位置{{1} }。