毕业设计 Makefile 编写
一天下来,Makefile终于完成了,可以实现c文件和头文件不同目录,并将输出文件输出到其他如output目录,将执行文件和makefile文件并列:
源码如下:
# ============================================================
# Makefile for project (by chen long 2019.03.29) ======
# make clean : clean output/ ======
# make : make clean && make all ======
# ============================================================
TARGET := app
MKDIR := mkdir -p
RM := rm -rf
CC := gcc #arm-linux-gcc
# LIBS := -lpthread
CFLAGS := -o
MAKE_PATH := $(CURDIR)
INC_PATH := -I$(MAKE_PATH)/include
SRC_PATH := $(MAKE_PATH)/src
OUT_PATH := $(MAKE_PATH)/output
# ---------------------------------------------------------
# ---------------------------------------------------------
SRCS_DIR =$(wildcard $(SRC_PATH)/*.c)
SRCS = $(notdir $(SRCS_DIR) )
OBJS = $(patsubst %.c,%.o,$(SRCS))
OBJS_DIR = $(addprefix $(OUT_PATH)/, $(OBJS))
default: all
.PHONY: mk_output_dir clean cleanall
all:clean mk_output_dir $(OBJS) $(TARGET)
# 搜索目录下.c和.o文件
vpath %.c $(SRC_PATH)
vpath %.o $(OUT_PATH)
mk_output_dir:
@$(MKDIR) $(OUT_PATH)
$(OBJS):%.o:%.c
@$(CC) $(INC_PATH) $(CFLAGS) $(OUT_PATH)/$@ -c $<
$(TARGET) :$(OBJS_DIR)
@$(CC) $(INC_PATH) $(LIBS) $(CFLAGS) $@ $^
clean:
$(RM) $(OUT_PATH)
cleanall:
$(RM) $(OUT_PATH) $(MAKE_PATH)/main
毕业设计 Makefile 编写的更多相关文章
- Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)
开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处. QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样 =============================== ...
- Make和Makefile编写(详见GCC手册)
Makefile和Make Rules 多模块软件.依赖树和Make 默认规则 Make使用程序对简单变量的支持 内建变量 虚目标 特殊目标 一般性语法错误及其纠正措施 命令行的使用和调试 Makef ...
- linux 下C语言编程库文件处理与Makefile编写
做开发快3年了,在linux下编译安装软件算是家常便饭了.就拿gcc来说,都有不下10次了,可基本每次都会碰到些奇奇怪怪的问题.看来还是像vs.codeblocks这样的ide把人弄蠢了.便下定决心一 ...
- 单目录下多文件 makefile编写
makefile很久就接触过了,但是一直没怎么深入的去学习和总结:在项目中我也只是看看makefile或者修改部分语句,全部自己动手写的话还真没有:知识在于沉淀,这句说的非常好,所以现在把自己理解的东 ...
- linux --> Makefile编写
Makefile编写 单目录 测试程序在同一个文件中,共有func.h.func.c.main.c三个文件,Makefile写法如下所示: CC = gcc CFLAGS = -g -Wall mai ...
- Linux——makefile编写
以前对makefile的编写,限于刚开始接触,我都比较局限一些死板的格式,有时候就会显得有些繁琐.在进一步了解一些系统编译和链接的知识后,对makefile编写流程有了一些新的认识,所以来此梳理梳理, ...
- 如何将多个C文件链接在一起----Makefile编写及make指令
需使用GCC编译器,关于MinGW的安装指南:https://people.eng.unimelb.edu.au/ammoffat/teaching/20005/Install-MinGW.pdf 单 ...
- Windows 下的 Makefile 编写
Windows 下的 Makefile 编写(一)Makefile的基本规则 作者:cntrump Makefile对于很多人来说是陌生的,特别是习惯于使用 IDE 的人来说,似乎没有听说过 Make ...
- [动态库]动态库生成和使用以及Makefile编写
转自:https://www.cnblogs.com/ljtknowns/p/5647793.html 文件目录结构如下 1 dynamiclibapp.c 2 Makefile 3 comm/inc ...
随机推荐
- SENG201 (Software Engineering I) Project
SENG201 (Software Engineering I) ProjectSpace ExplorerFor project admin queries:For project help, hi ...
- net-tools与iproute2
net-tools与iproute2 我们知道redhat系列发行版7x版本中最小化安装是没有net-tools工具包的,默认使用iproute2工具包,最直观的感受是ifconfig命令被ip命令所 ...
- linux软件安装方式
先插句题外话,快捷键 Ctrl+s 的功能是停止输入,Ctrl+q 恢复输入; 正题,在linux的应用软件安装有三种: 1,tar包 2,rpm包 3,dpkg包 以下介绍三种包的安装和卸载方式 1 ...
- C++ 实验2
#include <iostream> using namespace std; template<class T> void insertionSort(T a[],int ...
- Spring Boot(一):环境搭建,建立简单项目
一.基本环境搭建 1.下载IntelliJ IDEA :http://www.jetbrains.com/idea/ 2.拖到页面最下面下载旗舰版 3.新建项目 4.设置本地Maven 5.删除多于文 ...
- C++ STL学习之 空间配置器(allocator)
众所周知,一般情况下,一个程序包括数据结构和相应的算法,而数据结构作为存储数据的组织形式,与内存空间有着密切的联系. 在C++ STL中,空间配置器便是用来实现内存空间(一般是内存,也可以是硬盘等空间 ...
- JavaScript基本概念
JavaScript概念:JavaScript是一个弱类型语言,而且不要进行编译,是解释性语言.JavaScript最初是为了处理一些相较简单的数据验证,从而减少客户端与服务器端的通信提升效率,发展至 ...
- (转)手工释放linux内存——/proc/sys/vm/drop_cache
linux的内存查看: [root@localhost 0.1.0]# free -m total used free shared ...
- Angular7上手体验
准备工具 Node.js Angular requires Node.js version 8.x or 10.x. 查看当前你的node版本可以在CMD中输入 node -v npm -v 开发工具 ...
- 清除eclipse项目中没用的图片、js、css代码
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOExce ...