首页 > 其他分享 >Makefile 模板(二)

Makefile 模板(二)

时间:2023-11-17 10:15:57浏览次数:32  
标签:SRC OBJOUT TARGET Makefile echo DIR 模板

Makefile 模板

模板介绍

  1. 支持存放中间文件的文件夹检查和创建
  2. 支持源文件位于不同文件夹内

模板

OBJOUT := ./out/
EXEOUT := ./out/
INCLUDE_DIR := ./include
SRC_DIR_TEST = ./src/test/
SRC_DIR_THREADPOLL = ./src/WorkThread/
LIB := -lpthread

SRC := $(wildcard $(SRC_DIR_TEST)*.cpp)
SRC += $(wildcard $(SRC_DIR_THREADPOLL)*.cpp)
OBJ := $(patsubst %.cpp,%.o, $(SRC))

TARGET := threadpool
CC := g++
CXXFLAG = -std=c++11
CFLAGS := -I$(INCLUDE_DIR)

all: PRE_CHECK $(TARGET) 
$(TARGET) : $(OBJ)
	@echo "SRC: " $(SRC)
	@echo "OBJ: " $(OBJ)
	@echo "TARGET: " $(TARGET)
	$(CC) $(CFLAGS) $(CXXFLAG) $^ -o $(TARGET) $(LIB)
	mv $^ $(OBJOUT)
	@echo "Compiling" $@ "end\n"

%.o : %.cpp
	echo "Compiling " $< "...."
	$(CC) $(CFLAGS) $(CXXFLAG) -c $^ -o $@ $(LIB)
	@echo "Compiling " $@ "end\n"

PRE_CHECK:
	@if [ ! -d $(OBJOUT) ];then \
		echo "Folder $(OBJOUT) does not exist, creating it..."; \
		mkdir $(OBJOUT); \
	else	\
		echo "Folder $(OBJOUT) already exists, nothing to do";	\
	fi

.PHONY: clean

clean:
	rm -rf $(TARGET) $(OBJOUT)* $(OBJOUT)

标签:SRC,OBJOUT,TARGET,Makefile,echo,DIR,模板
From: https://www.cnblogs.com/wanghao-boke/p/17838011.html

相关文章

  • 如何用gcc+makefile改造STM32Keil项目
    1、环境配置,本地需要安装gcc+make环境,将w64devkit中的bin路径放入环境变量D:\download\storage\arm_gcc\w64devkit然后再cmd中输入gcc-v和make-v测试gcc和make环境是否可以正常运行,如果有下面这种显示就说明gcc和make环境配置好了2、获取芯片的启动文件文件和链接文件,stm32......
  • cbv源码,模板,请求响应,session
    1cbv源码......
  • Idea配置mybatis核心配置文件模板
    在我们日常开发中不可能将mybatis相关配置文件全部记住,我们这里通过在idea中配置模板快捷生成(本文演示idea版本为2022.02.01)。方法如下:1.进入idea设置File->settings2.选择Editor->FileandCodeTemplates->Files3.点击“+”创建模板,对模板命名,设置模板类型,设置模板默认名字(模板中......
  • 【模板】扫描线
    【模板】扫描线题目描述求$n$个四边平行于坐标轴的矩形的面积并。输入格式第一行一个正整数$n$。接下来$n$行每行四个非负整数$x_1,y_1,x_2,y_2$,表示一个矩形的四个端点坐标为$(x_1,y_1),(x_1,y_2),(x_2,y_2),(x_2,y_1)$。输出格式一行一个正整数,表示$n$个......
  • c#调用Bartender标签模板打印
    Bartender标签打印软件挺好用的,模板可视化,参数也好调整,我用的是这个版本 先在电脑上装好Bartender软件然后在VS项目中,添加引用,选择COM组件,搜索Bartender,确定引用BarTender10.1 在项目中创建BarTenderPrint类///<summary>///打印标签类///</summary......
  • 委托使用-模板方法
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace_03_委托的使用_模板方法{//模板方法——“借用”指定的外部方法来产生结果//优点:实现了代码的重复使用,提高代码效率//特点://1.相当于填空题//2.......
  • Java将SQL解析为SQL模板
    /***获取sql模板*/publicStringextraSqlTemplate(StringsqlContent){if(StringUtils.isBlank(sqlContent)){return"";}String[]sqlContentArr=sqlContent.split("");String......
  • 客户端首屏渲染时首先拿到空的html模板,之后继续发起数据请求。而服务器端渲染只需要请
    客户端首屏渲染时首先拿到空的html模板,之后继续发起数据请求。而服务器端渲染只需要请求一次,服务器会将请求的数据放在html模板中一起返回。服务器端渲染耗费流量,局部页面的变化也需要重新请求完整的页面客户端渲染就可以采用SPA,能实现局部组件的更新,服务器端渲染回来的就是整个......
  • 【转载】计算几何模板
    转自https://blog.csdn.net/k_l_c_/article/details/51992298?spm=1001.2014.3001.5502两点之间距离判断两点是否重合叉积//可判断点在线段或直线的哪一侧点积判断点p是否在线段l上返回点p以点o为圆心逆时针旋转alpha(单位:弧度)后所在的位置返回顶角在o点,起始边为os,终止......
  • $(CURDIR)/Makefile Makefile: ; 的作用
    $(CURDIR)/MakefileMakefile:; 在这个Makefile中,$(CURDIR)/MakefileMakefile:;是一个特殊的语法,它被用于取消Makefile默认的隐含规则。这个语句的作用是阻止Make命令在当前目录下自动查找和使用默认的隐含规则来构建目标。通常情况下,如果没有指定如何构建某个目标,Make命令......