Linux学习笔记——例说makefile 综合案例
# 指定编译器 CC = gcc # CFLAG包括头文件目录 CFLAGS = -g -Wall # 头文件查找路径 INC = -Iport -I../../modbus/rtu -I../../modbus/ascii -I../../modbus/include -I../../modbus/tcp # 静态链接库 LDFLAGS = LDLIBS = -lpthread # 目标 TARGET = tcpmodbus # 源文件 SRC = demo.c port/portother.c port/portevent.c port/porttcp.c ../../modbus/mb.c ../../modbus/tcp/mbtcp.c ../../modbus/functions/mbfunccoils.c ../../modbus/functions/mbfuncdiag.c ../../modbus/functions/mbfuncholding.c ../../modbus/functions/mbfuncinput.c ../../modbus/functions/mbfuncother.c ../../modbus/functions/mbfuncdisc.c ../../modbus/functions/mbutils.c # 源文件编译为目标文件 OBJS = $(SRC:.c=.o) # 链接为可执行文件 $(TARGET): $(OBJS) [tab]$(CC) $^ -o $@ $(LDFLAGS) $(LDLIBS) # 清除可执行文件和目标文件 clean: [tab]rm -f $(OBJS) [tab]rm -f $(TARGET) # 编译规则 加入头文件 $@代表目标文件 $< 代表第一个依赖文件 %.o:%.c [tab]$(CC) $(CFLAGS) $(INC) -o $@ -c $<
Type 'q' for quit or 'h' for help! > h FreeModbus demo application help: 'd' ... disable protocol stack. 'e' ... enabled the protocol stack 's' ... show current status 'q' ... quit applicationr 'h' ... this information >
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。