多个文件目录下Makefile的写法
来源:互联网 发布:网络作家猫腻 金泰妍 编辑:程序博客网 时间:2024/05/17 07:41
多个文件目录下Makefile的写法
1、前言
目前从事于linux下程序开发,涉及到多个文件,多个目录,这时候编译文件的任务量比较大,需要写Makefile。关于Makefile的详细内容可以参考网上流传非常广泛的《跟我一起写Makefile》http://blog.csdn.net/haoel/article/details/2886/,作者是个大牛,非常佩服。
2、简单测试
测试程序在同一个文件中,共有func.h、func.c、main.c三个文件,Makefile写法如下所示:
- CC=gcc
- objects=obj/main.o obj/printStatus.o
- bin/main:$(objects)
- $(CC) -o bin/main $(objects)
- obj/main.o:src/main.c include/common.h
- $(CC) -o obj/main.o -c src/main.c -Iinclude
- obj/printStatus.o:src/printStatus.c include/common.h
- $(CC) -o obj/printStatus.o -c src/printStatus.c -Iinclude
- clean:
- rm -rf $(objects) bin/main
执行过程如下图所示:
3、通用模板
实际当中程序文件比较大,这时候对文件进行分类,分为头文件、源文件、目标文件、可执行文件。也就是说通常将文件按照文件类型放在不同的目录当中,这个时候的Makefile需要统一管理这些文件,将生产的目标文件放在目标目录下,可执行文件放到可执行目录下。测试程序如下图所示:
完整的Makefile如下所示:
例如下图例子所示:
输出结果如下所示:
SRC = $(wildcard *.c)
等于指定编译当前目录下所有.c文件,如果还有子目录,比如子目录为inc,则再增加一个wildcard函数,象这样:
SRC = $(wildcard *.c) $(wildcard inc/*.c)
(3)gcc -I -L -l的区别:
gcc -o hello hello.c -I /home/hello/include -L /home/hello/lib -lworld
上面这句表示在编译hello.c时-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,
寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
-L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,
寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)
转载:http://www.cnblogs.com/Anker/p/3242207.html
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个文件目录下Makefile的写法
- 多个目录下Makefile的写法
- 多文件目录Makefile的写法
- 编译多个目录源码的Makefile写法
- 第十二讲 多目录下makefile的通用写法zz
- 多目录Makefile写法
- linux下makefile文件的写法
- 多文件及多目录下MakeFile文件的编写
- Makefile文件的写法
- Java基础练习题 (9)资源文件
- 背景分割器BackgroundSubtractor
- 51单片机实现电脑散热器仿真
- 表单的验证
- TTL电平 和 232电平的区别和转化
- 多个文件目录下Makefile的写法
- 基于场景的软件早期估算
- HTML CSS 基础 面试题
- Python Django实现简单购物车功能
- linux进程状态(ps stat)之R/S/D/T/Z/X
- 怎么看某个jdk是32位的,还是64位的?
- groupby一个重要的原则
- RN之 ref和setNativeProps使用
- 14个 Xcode 中常用的快捷键操作