私は実際に C で makefile を作成しようとしていますが、すべてのファイルをリンクする際に深刻な問題が発生するようです。基本的に、ソケットを備えたサーバーを介して実行される辞書を作成しようとしています。ディクショナリを初期化し、ファイル servidor-dict.c のリクエストを解釈し、dict.c からリクエストを送信します。また、ソケットを使用するための基本的な関数 (j_socket()、j_bind()...) を含む libjsocket.o という 2 つのファイルもあります。libjsocket.o のヘッダーである jsocket.h。
メイクファイルを実行すると、コンソールに次のように表示されます。
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
どうやら、ソケットファイルとサーバー/クライアントファイルとの間に正しいリンクを作成していないようです。私のメイクファイルは次のとおりです。
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