分页: 1 / 1

请问我自已编写的这个Makefile哪儿不对呢?

发表于 : 2010-09-18 8:38
Patrick_DJ
做了一个类似于Hellowold的sample,为其编写Makefile文件

main.cpp 代码如下:

代码: 全选

  1 #include <stdio.h>
  2 #include <GL/glut.h>
  3 
  4 int main(int argc, char** argv)
  5 {
  6     glutInit(&argc,argv);
  7     printf("Hello World\n");
  8 }
Makefile 内容如下:

代码: 全选

  1 CC = g++
  2 OBJS = main.o
  3 CFLAGS = -Wall -O -g -lGL -lGLU -lglut
  4 INCDIR = /usr/include/
  5 
  6 main: $(OBJS)
  7     $(CC) $(OBJS) -o main
  8     
  9 main.o: main.cpp
 10     $(CC) $(FLAGS) -I $(INCDIR) -c main.cpp -o main.o
 11 
 12 clean:
 13     rm -rf *.o main
编译错误内容如下:

代码: 全选

g++ main.o -o main
main.o: In function `main':
main.cpp:(.text+0x17): undefined reference to `glutInit'
collect2: ld returned 1 exit status
make: *** [main] Error 1
我用的是ubuntu10.4, glut.h文件路径是 /usr/include/GL/glut.h. 而且在我机子上编译一些开源的Opengl项目并且运行也没有问题。

另外直接用g++ -Wall -O -g -lGL -lGLU -lglut main.cpp -o main 来编译是成功的.

请问我的Makefile是哪儿不对呢? :)

Re: 请问我自已编写的这个Makefile哪儿不对呢?

发表于 : 2010-09-18 23:10
wzssyqa
是不是因为 $(CC) $(OBJS) -o main
没有加

$(FLAGS) ?

Re: 请问我自已编写的这个Makefile哪儿不对呢?

发表于 : 2010-09-18 23:18
adam8157
-l是链接的时候的参数, 恰恰有链接的最后一步没给参数

Re: 请问我自已编写的这个Makefile哪儿不对呢?

发表于 : 2010-09-21 22:31
Patrick_DJ
谢谢2楼和3楼。按照你们的方法解决了...
我怎么当时就没想到,失败...
我竟然还是写了4年代码的人了, 真是...@_@