Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45076
  • 博文数量: 9
  • 博客积分: 465
  • 博客等级: 下士
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-11 15:07
文章分类

全部博文(9)

文章存档

2011年(2)

2010年(7)

我的朋友
最近访客

分类: LINUX

2010-08-24 11:20:14

makefile:主要目的是方便gcc构造大中型项目
格式:
目标名称:[依赖对象]
      命令列表       注:  是一个tab建,然后输入命令
 
仍然使用gcc的3个文件
例子1:基本使用方法
###类似倒推法
all:main
 
main:hello_main.o hello.o
 gcc hello.o hello_main.o  -o  main
 
hello_main.o:hello_main.c
 gcc -c hello_main.c  -o  hello_main.o
 
hello.o:hello.c
 gcc -c hello.c  -o  hello.o
 
clean:
 rm -f  *.o    main   #或者-rm -f  *.o main
 #命令行前加"-"  表示如果命令出错不中止makefile ,否则出错终止
 
 
例子2:makfile建立静态库
##
all:main
 
main:hello_main.o libhello.a
 gcc hello_main.o  -L. -lhello -o main
 
hello_main.o:hello_main.c
 gcc -c hello_main.c
 
libhello.a:hello.o
 ar rv libhello.a hello.o
 
hello.o:hello.c
 gcc -c hello.c
 
clean:
 -rm -f   *.o  main libhello.a
 
输入:make
输入:./main
 
例子3:makfile建立动态库
all:main
 
main:hello_main.o libhello.so
 gcc hello_main.o -L.  -lhello  -o main
 
hello_main.o:hello_main.c
 gcc  -c hello_main.c   -o hello_main.o  -I.
 
libhello.so:hello.o
 gcc   -shared   hello.o    -o  libhello.so
 
hello.o:hello.c
 gcc  -c -fpic  hello.c  -o hello.o
 
clean:
 -rm -f  *.o    main  libhello.so
 
run:main
 export LD_LIBRARY_PATH=.;./main #或者export LD_LIBRARY_PATH=$PWD;./main
输入:make
输入:./main
 
 
注意常出错的问题:

当输入”make”时提示:

  或者

 

说明存在最新的目标文件 ,把中间文件*.o和目标文件删除,然后重新输入”make”即可。

 

 

 

阅读(876) | 评论(0) | 转发(0) |
0

上一篇:gcc(库)

下一篇:makefile 中(简化)

给主人留下些什么吧!~~