linux编译多个源文件的程序比较麻烦,这下就需要通用的Makefile了,编译的时候执行一下make命令就OK,下面介绍通用makfile的写法。

假设现在有以下源文件:file1.h file1.c file2.h file2.c mainproc.c,程序的主函数在mainproc.c中。

#######通用Makefile模板########

# 目标文件名字

TARGET = Myproc

# c源文件

SRC = mainproc.c file1.c file2.c

# object文件

OBJS = $(SRC:.c=.o)

# 编译器

CC = gcc

# 头文件路径,可以任意指定头文件

INCLUDE = -I/usr/include/ -I/usr/include/ncurses

# 链接库

LINKPARAM = -lpthread -lncurses

# 编译选项

CFLAGS = -ansi -g -Wall

all:$(TARGET)

# 定义目标文件生成规则

$(TARGET):$(OBJS)

  $(CC) -o $(TARGET) $(LINKPARAM) $(OBJS)

.SUFFIXES:.c

# 定义obejct文件生成规则

.c.o:

  $(CC) $(LINKPARAM) $(INCLUDE) $(CFLAGS) -c $<

# 定义清理函数

clean:

  rm $(OBJS) $(TARGET)

linux下通用Makefile写法相关推荐

  1. Linux下通用的Makefile

    Linux下通用的Makefile 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c/.cpp的源文件.如果我们用gcc/g++去一个一个编译 ...

  2. Linux下的makefile编写 ——陈皓《跟我一起写Makefile》学习笔记(一)

    Linux下的makefile编写 前言 本人记笔记习惯使用OneNote,在学习LinuxC++过程中发现deepin上没有大佬开发或者移植,本人技术也不精,所以决定写博客记笔记(只是习惯问题,并没 ...

  3. Windows和Linux下通用的线程接口

    对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...

  4. Multi-thread--Windows和Linux下通用的线程接口

    对于多线程开发,Linux下有pthread线程库,使用起来比较方便,而Windows没有,对于涉及到多线程的跨平台代码开发,会带来不便.这里参考网络上的一些文章,整理了在Windows和Linux下 ...

  5. spdlog linux编译出错,Linux下编写Makefile引入第三方库

    Linux下编写Makefile引入第三方库 前言:一直在使用CmakaList 生成Makefile文件,其实很少去写Makefile,但是最近帮朋友处理了一个Makefile引入第三方库的问题,就 ...

  6. Linux下通用线程池的创建与使用

    Linux下通用线程池的创建与使用 本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关.另外该线程池具有动态伸缩性,它能根据执行任务的轻重自动调整 ...

  7. LINUX下的makefile学习(此文是我学习过程遇到问题时找到的所有回答,感谢其它大佬的回答,各个文章我都标明了原文链接)

    看视频学习截图: 针对上面情况就使用makefile工程管理 内容一行写不完,加上'\' : CC=gcc2 CFLAGS=-Wall -std=gnu993 #CFLAGS=-Wall -std=g ...

  8. Linux下的Makefile编写与优化

    Makefile---Linux 一.什么是Makefile? 二.什么是make? 三.Makefile的用途? 四.理论基础 五.Makefile的工作过程? 六.规则的构成 七.Makefile ...

  9. Linux下的Makefile规则(隐式规则和模式规则)

    目录 1.Makefile规则 2.隐式规则 3.模式规则 Linux下编写C使用的GDB调试器 Ubuntu中关于C介绍以及编写C程序 Ubuntu换源教程 Linux中的Make工程管理 Linu ...

最新文章

  1. 各大厂分布式链路跟踪系统架构对比
  2. 图像和流媒体 -- 详解YUV数据格式
  3. 国王放米粒的C语言程序,云南大学软件学院C语言实验米粒问题.doc
  4. yy直播没声音html,驱动技巧:解决YY语音中麦克风无声或者有噪音的问题
  5. python yield 简单用法_python中 yield 的用法 (简单、清晰)
  6. 使用supervisord 来守护 nginx进程
  7. 成绩记录薄系统C语言,成绩记录簿C语言版.doc
  8. html5浏览器最小化,javascript – 在浏览器最小化时引起用户的注意(跨浏览器桌面通知?)...
  9. c语言c9考试软件下载,二级c语言考试系统-无忧考吧二级c语言考试系统下载 v2018.09官方版--pc6下载站...
  10. 不想荒废你的大学生活吧?看看牛人是怎样成为电子学霸的!
  11. 如何进入大华智能分析服务器,如何配置大华录像机区域入侵功能,看完就明白...
  12. 5号字对应的数字字号_5号字体是多少pt-字号,尺寸
  13. Medusa(美杜莎)--参数及常见命令
  14. 自学php多久可以工作_php自学要多久,学php难吗,多久能学会?
  15. centos 日志审计_生产环境日志审计
  16. 基于 MSP430 CC1101的WOR的测试
  17. Matlab使用-meshgrid函数(网格矩阵)
  18. 大数据平台架构设计案例
  19. WSL嵌入式开发系列教程 4 —— 安装VS code
  20. 紫外线探测器SG01D-C18应用于紫外光刻机

热门文章

  1. jquery 滚动条位置的
  2. 【转】为什么螺丝都是六角的?
  3. 解决Button自动刷新页面的问题
  4. 《算法竞赛进阶指南》0.5排序
  5. Nginx Slab内存管理
  6. PYTHON自动化Day4-交换变量,字符串方法,拷贝,集合,文件,文件指针
  7. python学习HTML之CSS(2)
  8. HTTPS 路径配置
  9. C#= 栈模仿堆的操作
  10. 解读ASP.NET 5 MVC6系列(9):日志框架