我实际上是在尝试用 C 制作一个 makefile,但似乎将所有文件链接在一起时遇到了一些严重的问题。基本上,我正在尝试制作一个通过带有套接字的服务器运行的字典。我初始化字典并解释文件 servidor-dict.c 中的请求,然后从 dict.c 发送请求。我也有这两个文件:libjsocket.o,其中包含使用套接字的基本功能(j_socket()、j_bind()...)。jsocket.h 是 libjsocket.o 的头文件。
当我运行我的 makefile 时,控制台一直在说我:
Undefined symbols for architecture x86_64:
"_j_socket", referenced from:
_main in servidor-dict.o
"_j_bind", referenced from:
_main in servidor-dict.o
"_j_accept", referenced from:
_main in servidor-dict.o
所以显然我没有在套接字文件和我的服务器/客户端文件之间建立正确的链接。我的makefile如下:
CFLAGS= -c -Wall
object= servidor-dict.o libjsocket.o
object1 = dict.o libjsocket.o
tarea: dict servidor-dict
servidor-dict: $(object)
gcc -g $(object) -o servidor-dict
dict: $(object1)
gcc -g $(object1) -o dict
%.o: %.c
gcc $(CFLAGS) $<
servidor-dict.c: jsocket.h
dict.c: jsocket.h
libjsocket.c: jsocket.h
clean :
rm -rf *.o tarea