论Makefile的重要性(二)-----Linux C开发

接上

1.关于makefile的升级版本一:
libmath.a:add.o sub.o mul.o devl.o
    ar rcs [email protected] $^
add.o:add.c
    gcc -c $^
sub.o:sub.c
    gcc -c $^
mul.o:mul.c
    gcc -c $^
devl.o:devl.c
    gcc -c $^

.PHONY:clean
clean:
    rm -f add.o sub.o mul.o devl.o
2.版本2
obj=add.o sub.o mul.o devl.o
dest=libmath.a

$(dest):$(obj)
    ar rcs [email protected] $^
%.o:%.c
    gcc -c $^

.PHONY:clean
clean:
    rm -f $(obj)
3.版本三:
src=$(wildcard *.c)
obj=$(patsubst %.c,%.o, $(src))
dest=libmath.a

$(dest):$(obj)
    ar rcs [email protected] $^
%.o:%.c
    gcc -c $^

.PHONY:clean
clean:
    rm -f $(obj) $(dest)
 1 4.版本四:
 2 src=$(wildcard *.c)
 3 obj=$(patsubst %.c,%.o, $(src))
 4
 5 CC=gcc
 6 CFLAGS=-g
 7 LDFLAGS=
 8 CPPFLAGS=
 9
10 dest=libmath.a
11 #dest=a.out
12
13
14 $(dest):$(obj)
15     ar rcs [email protected] $^
16 #$(CC) $(LDFLAGS) $^ -o [email protected]
17 %.o:%.c
18     $(CC)  $(CFLAGS) -c $^
19
20 .PHONY:clean
21 clean:
22     -rm -f $(obj) $(dest)
时间: 2024-11-05 18:34:00

论Makefile的重要性(二)-----Linux C开发的相关文章

linux应用开发-makefile

linux应用开发-makefile 一 makefile 工程管理文件,编译成复杂的程序 组装程序 二 规则 1 文件名称:全部小写makefile或者首字母Makefile大写,其他的都不行 2 文件里面#代表注释 三 编写 makefile由许多条规则组成 规则:依赖项 (前面留一个tab)命令 hello:main.o 1.c 2.c gcc main.c 1.c 2.c -o hello 1 自定义变量:MOBJ= main.c相当于宏 test: $(MOBJ) 2 预定义变量:系统

【Linux学习】Makefile学习(二)

FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 40975    Accepted Submission(s): 13563 Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats g

嵌入式linux QT开发(二)——QT开发环境搭建

嵌入式linux QT开发(二)--QT开发环境搭建 一.Windows系统QT开发环境搭建 操作系统:Windows 7 QT Creator:qt-creator-win-opensource-2.4.1 QT SDK:qt-win-opensource-4.7.4-mingw 1.安装QT Creator 点击qt-creator-win-opensource-2.4.1源程序安装. 2.安装QT SDK 点击qt-win-opensource-4.7.4-mingw源程序安装. 选择mi

嵌入式Linux裸机开发(十二)——iNand简介

嵌入式Linux裸机开发(十二)--iNand简介 一.iNand简介 iNand是SanDisk公司研发的存储芯片,可以看成SD卡或MMC卡芯片化. iNand是SanDisk公司符合eMMC协议的芯片系列名称,内部采用MLC存储颗粒.iNand接口电路设计复杂,功能完善,提供eMMC接口协议,与SoC的eMMC控制器配对通信. 相对MLC NandFlash,iNAND有以下优点: 1.提高性能 A.减少SOC的工作量,节约SOC资源. 如果使用MLC做存储,SOC要参与FLASH的坏块管理

Linux驱动开发(二)—DMA的使用(一)

1 DMA概念 DMA顾名思义就是指设备和内存之间.内存和外部存储设备之间进行直接的数据读写操作,而不需要CPU的参与. 2 DMA原理 DMA传输需要由DMA控制器DMAC进行,当需要进行DMA传输的时候,DMA控制器会发出占用总线的请求,当CPU响应DMA的请求时,暂时放弃对总线的控制权,当DMA传输结束的时候,DMAC会向I/O接口发出结束命令,并将总线控制权交还给CPU.一个完整的DMA传输过程必须经过DMA请求.DMA响应.DMA传输.DMA结束4个步骤. 3 DMA传输过程 4 DM

嵌入式linux QT开发(四)——QT Creator工程管理

嵌入式linux QT开发(四)--QT Creator工程管理 一.QT Creator工程管理 QT Creator以工程项目的方式对源码进行管理,一个QT工程中包含不同类型的文件如下: A..pro项目描述文件 B..pro.user用户描述文件 C..h头文件 D..cpp源文件 E..ui界面描述文件 F.资源文件(图片.音频等) 二..pro项目描述文件 1..pro项目描述文件基本构成如下: A.#注释起始符 B.QT模块声明 C.TARGET可执行文件名 D.TEMPLATE程序

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,

如何使用eclipse进行嵌入式Linux的开发

如何使用eclipse进行嵌入式Linux的开发 作者:曾宏安,华清远见嵌入式学院高级讲师. 如何使用eclipse进行嵌入式Linux的开发 习惯了在windows环境下开发的程序员在转到Linux平台时经常会抱怨没有一个好用的集成开发环境.和windows下常用的一些开发软件相比,Linux自带的一些开发环境使用起来要么界面和操作不够方便.友好,要么功能不全.其实我们完全可以在开源社区上找到操作方便,功能强大的开发环境.下面就向大家介绍一个能在Linux上运行,界面和功能与windows上同

嵌入式linux QT开发(一)——QT简介

嵌入式linux QT开发(一)--QT简介 一.QT简介 1.QT简介 QT是一个跨平台的C++图形用户界面库,由挪威TrollTech公司出品,目前包括Qt Creator, QtEmbedded,Qt Designer快速开发工具,Qt Linguist国际化工具等部分,Qt支持所有Linux/Unix系统,还支持Windows平台. 2.QT优点 Qt是一个跨平台的C++图形用户界面应用程序框架,提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能.Qt很容易扩展,并且允许真正地组

嵌入式Linux裸机开发(一)——点亮Led

嵌入式Linux裸机开发(一)--点亮Led 开发板:友善之臂smart210 一.电路图查阅 1.底板电路图 查阅开发板底板电路图,查阅LED相关部分 LED电路工作原理: LED的正极接3.3V,负极接地时导通,LED发光. 开发板共有四颗LED,正极接3.3V,负极接开发板的LED1_LED4引脚,如果LED要点亮则需要输入低电平. 2.核心板电路图 查阅核心板电路图可知,LED1-LED4接在SoC的GPJ2_0-GPJ2_3,通过控制GPJ2_0-GPJ2_3的寄存器使对应GPIO引脚