通用makefile 文件

 

 

 

 

 

## c/c++ 代码编译Makefile
########################常规配置##################################################
##目标文件
TARGET = server

##安装目录
INSTALL_DIR = /opt/

##包含头文件路径
# -I/xx/xx/include
INC_DIR = -I/usr/include/mysql -I/usr/include/libxml2

##依赖库
LIB_DIR = -L/usr/lib64/mysql 
LIB_DEPENDS = -lmysqlclient -lcurl -lxml2

##编译选项
CFLAGS = -Wall -O -g
# -Wall  输出所有告警
# -O     在编译时进行优化
# -g     编译debug版本

######################################################################################
##编译器选用
CC = gcc
XX = g++

##wildcard通配符函数,产生一个所有.c .cpp文件列表
C_SRC = $(wildcard *.c)
CXX_SRC = $(wildcard *.cpp)

##产生一个所有.c .cpp文件 对应的.o文件列表
##把所有.c替换成.o
#C_OBJS = $(C_SRC:%.c=%.o)
C_OBJS = $(subst .c,.o,$(C_SRC))
#CXX_OBJS = $(CXX_SRC:%.cpp=%.o)
CXX_OBJS = $(subst .cpp,.o,$(CXX_SRC))
ALL_OBJ = $(C_OBJS) $(CXX_OBJS)

##把所有c文件编译生成.o文件
## $< --第一个依赖文件;$@ --目标文件
%.o:%.c
	$(CC) $(CFLAGS) -c $< -o $@ $(INC_DIR)

##把所有cpp文件编译生成.o文件
%.o:%.cpp
	$(XX) $(CFLAGS) -c $< -o $@ $(INC_DIR)

##目标文件,依赖OBJS中的.o文件
##all--伪目标,$^--所有依赖文件
all: $(TARGET)
$(TARGET): $(ALL_OBJ)
	$(XX) $^ -o $(TARGET) $(INC_DIR) $(LIB_DIR) $(LIB_DEPENDS)
	chmod a+x $(TARGET)

##安装命令	
install: all
	mkdir -p $(INSTALL_DIR)
	cp -R $(TARGET) $(INSTALL_DIR)
	
##执行make clean操作
clean:
	rm -rf *.o  $(TARGET)

##指定哪些是伪目标,作用防止有这样的文件存在冲突,导致makefile不执行
.PHONY: all clean distclean install

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
韦东山通用makefile文件是一个用于管理和组织代码的文件,在软件开发过程中起着非常重要的作用。它包含了编译和链接代码的规则,可以帮助开发者自动化构建整个项目。通用makefile文件的设计使得开发者无需重复编写复杂的构建脚本,只需在makefile文件中定义编译器选项、源文件列表和编译规则,就可以轻松地构建整个项目。 韦东山通用makefile文件能够大大简化代码的管理和维护工作,使得团队成员可以更加高效地协作开发。通过makefile文件,开发者可以一键编译整个项目,生成可执行文件或者库文件,同时还能够方便地清理和重建代码。这种自动化的构建过程不仅能够提高开发效率,还能够减少人为错误,保证代码的质量和稳定性。 除此之外,韦东山通用makefile文件还可以方便地进行项目的扩展和维护。开发者可以通过简单地修改makefile文件来增加新的源文件或者目标文件,而无需修改大量的构建脚本。这种灵活的设计使得项目的管理变得更加轻松和高效。 总的来说,韦东山通用makefile文件是一个非常有用的工具,它能够帮助开发者简化项目的构建过程,提高开发效率,减少错误,同时还能够方便地进行项目的扩展和维护。因此,makefile文件在软件开发中扮演着非常重要的角色,是每个开发者都应该掌握和使用的技能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值