命令行工作,Makefile中的相同命令不起作用

时间:2013-10-17 15:40:04

标签: c++ command-line makefile

我浏览了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。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您没有将OpenGl库传递给链接器。您应该输入I

而不是l
all:
    gcc main.c -lglut -lGL -lGLEW -lGLU  -o OpenGLExample

您还应该传递编译器可以找到OpenGL头文件的目录,这可以使用-I完成,也可能是一个选项(或选项)指定链接器应该查找库的位置{{1} }。

相关问题