【发布时间】:2016-08-08 07:07:22
【问题描述】:
我必须编译一个client.c文件;在这个文件中,utiliy_lib.h 中定义了宏
当我跑步时:
gcc -Wall -c client.c utility_lib.h
编译器找不到宏定义。
我在同一个文件夹“code”中有这个文件:
client.c
服务器.c
utility_lib.c //它包含每个文件使用的通用宏
utility.c //它包含工具函数,供客户端和服务器使用
msg_queue.c // 它包含操作消息队列的函数(这是一个聊天室的小项目)
send_receive.c //它包含发送和接收消息的函数
我尝试的makefile是:
CC = gcc -Wall -O0 -g
LDFLAGS = -lpthread
ARCH = $(shell uname -m)
all: client server
server: common.h main.c msg_queue.c send_recv.c util.c
rm -f build/*.o
$(CC) -c main.c -o build/main.o
$(CC) -c send_recv.c -o build/send_recv.o
$(CC) -c util.c -o build/util.o
$(CC) -c msg_queue.c -o build/msg_queue.o
$(CC) -o server build/*.o $(LDFLAGS)
client:
ln -s -f client-$(ARCH) client
:phony
clean:
rm -f client server build/*.o
有人可以帮帮我吗?
【问题讨论】:
-
这与 makefile 有什么关系?另外,发布一些代码,问题可能出在您的代码中。
-
make 的问题在哪里??检查你的代码
-
#include "utility_lib.h"在 c 文件中并使用-IPATH_OF_HEADER -
在client.c中我显然有#include "utility_lib.h";我只发布了客户端行,因为它还包括服务器等其他行
-
CC= gcc -Wall LDFAGS= -lpthread 客户端:client.c utility_lib.h $(CC) client.c $(LDFLAGS)