前阵子让写makefile,纠结了下,基本忘记差不多了。

1.gcc的编译选项

-c

只是编译不链接,生成目标文件“.o”

-S

只是编译不汇编,生成汇编代码

-E

只进行预编译,不做其他处理

-g

在可执行程序中包含标准调试信息

-o file

把输出文件输出到file里

-v

打印出编译器内部编译各过程的命令行信息和编译器的版本

-I dir

在头文件的搜索路径列表中添加dir目录

-L dir

在库文件的搜索路径列表中添加dir目录

-static

链接静态库

-llibrary

连接名为library的库文件

2.makefile的规则

target...: prerequire...

  command

看到这个就熟悉了

3. makefile的文件中有什么

a)依赖的部分include

b)变量定义

c)显示规则(你所直观看到的依赖)

d)隐式规则(偷懒依靠makefile语法省写的那部分)

e)注释#

4.makefile 的工作步骤:

a)读取makefile

b)读include

c)初始化文件中的变量

d)推导隐式规则

e)为所有目标建立依赖链

f)根据依赖链,决定生成哪些目标

g) 执行生成命令

5.最简单的demo

target=hello
target_o=hello.o
target_c=hello.c

$(target):$(target_o)
        cc  -o $(target) $(target_o)
$(target_o):$(target_c)
        cc -c $(target) $(target_c)

最新文章

  1. javascript图片展示墙特效
  2. [转]Ubuntu 12.04中文输入法的安装
  3. R:incomplete final line found by readTableHeader on
  4. Android sharePreference使用
  5. 注解:【有连接表的】Hibernate单向1->N关联
  6. 定时往oracle插入数据
  7. 访问WEB-INF目录中的JSP文件
  8. PHP设计模式之:工厂模式
  9. POJ burnside&&polya整理练习
  10. 智能的PHP缩图类
  11. 201521044091 java 第一周总结
  12. spring-boot自定义favicon.ico文件
  13. luogu1484 种树 (优先队列)
  14. python分包写入文件,写入固定字节内容,当包达到指定大小时继续写入新文件
  15. delphi dbgrid 修改、更新、删除
  16. php优秀框架codeigniter学习系列——CodeIgniter.php概览
  17. SCCM2012 R2实战系列之九:OSD(中)--捕获镜像
  18. .Net Core Bitmap位图处理
  19. express + mongodb 搭建一个简易网站 (四)
  20. 第六章 HashSet源码解析

热门文章

  1. jq——属性和方法
  2. P3387 【模板】缩点 && P3388 【模板】割点(割顶)
  3. sublime text3安装js提示的插件
  4. 队列Queue的get方法
  5. BZOJ 1717 [USACO06DEC] Milk Patterns (后缀数组+二分)
  6. 利用Python对文件进行批量重命名
  7. ASP.NET-权限管理五张表
  8. ASP.NET-Razor常用方法
  9. 洛谷—— P1260 工程规划
  10. 洛谷 P1825 [USACO11OPEN]玉米田迷宫Corn Maze