一. 正常情况
(1)首先引入头文件:
server.o: server.c server.h#引入server.h头文件
client.o: client.c client.h#引入client.h头文件admin.o : admin.c admin.h #引入admin.h头文件seller.o : seller.c seller.h #引入seller.h头文件ipc.o : ipc.c ipc.h #引入ipc.h头文件message.o : message.c message.h #引入message.h头文件
(2)其次声明依赖文件:
svr_objs = server.o ipc.o message.o #服务程序依赖的对象文件
admin_objs = admin.o ipc.o message.o client.o # 管理员程序依赖的对象文件
seller_objs = seller.o ipc.o message.o client.o # 卖家程序依赖的对象文件
(3)然后生成可执行程序(注意第二行要有TAP键):
$(server_bin): $(svr_objs) #生成服务器程序
$(CC) $(CFLAGS) $^ -o $@
(4)$(admin_bin): $(admin_objs) #生成管理员程序
$(CC) $(CFLAGS) $^ -o $@
$(seller_bin): $(seller_objs) #生成商家程序$(CC) $(CFLAGS) $^ -o $@
(5)最后编译所有程序(写到最上面):
all: $(server_bin) $(admin_bin) $(seller_bin) # 编译所有程序
二. 问题在于
(1) 每一个程序中必须有且只有1个main函数而且不能是空的,否则会重复定义或者未定义;