关于Makefile中 undefined reference to `main' 的问题(待完善)

一. 正常情况
(1)首先引入头文件(每当:后面有一个文件出现变动,server.o都需要重新编译)

      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 $@ 


$(admin_bin): $(admin_objs)     #生成管理员程序
  $(CC) $(CFLAGS) $^ -o $@ 

$(seller_bin): $(seller_objs)	#生成商家程序
  $(CC) $(CFLAGS) $^ -o $@ 

(4)最后编译所有程序(写到最上面这样会根据需要的程序来逐层运行)

all: $(server_bin) $(admin_bin) $(seller_bin) # 编译所有程序

二. 问题
(1) 每一个可执行程序(第(2)步)中必须有且只有1个main函数而且不能是空的,否则会重复定义或者未定义;

posted @ 2024-12-31 12:26  不二铁子  阅读(187)  评论(0)    收藏  举报