IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 极简的Makefile工程框架 -> 正文阅读

[系统运维]极简的Makefile工程框架

作为一名Linux系统下的开发人员,平时工作中会经常用Makefile来构建应用开发框架。如果是特别简单的应用,几行makefile代码就可以搞定。但对于稍微上点规模的应用,其可能会包含若干个模块,复杂点的还会链接其他的动态库,这时的makefile可能就不是几行代码就能搞定的了。这时就需要用到一些比较复杂的makefile语法来构建整个应用工程。

如果每次都要从头编写makefile,可能会由于某个语法忘记了,耽误开发的效率。本文要介绍的MakeExp,就是一种用于构建中等规模的Linux应用程序时,makefile工程框架,基于这个极简的makefile工程框架,可以快速搭建Linux应用程序开发环境,提升开发效率。

下面是MakeEx的框架:
在这里插入图片描述
下面是Makefile文件的内容:

CC=gcc
#CC=arm-linux-gnueabihf-gcc

INCLUDE= -I ./include  
LIBS= -L ./lib -lpthread

OBJS += $(patsubst %.c, %.o, $(wildcard ./src/*.c))

CFLAGS = -O0 -g -Wall -std=gnu99  -fstack-protector-all

target = app

all:$(OBJS)
	$(CC) build/*.o -o ./build/$(target) ${LIBS}
%.o:%.c
	$(CC) ${CFLAGS} -c $< -o $@ $(INCLUDE)
	mv $@ build

.PHONY:clean
clean:
	 rm -rf build/*

我们只要把.c文件和.h文件分别放到src和include文件夹下,动态库放到lib目录下,简单修改Makefile中的target,替换成APP名称,执行make后,就可以完成应用程序的编译,编译成功后,可执行程序会放到build目录下,是不是特别的方便。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-07 14:03:25  更:2022-02-07 14:03:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:46:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码