現在、私は共有メモリ経由でIPCを使用したクライアントサーバープログラムを実行していますが、これをmakeで実行すると少し問題があります。サーバーを実行し、3つのクライアントを1つのmakeターゲットで同時に実行したいのですが、 2つのターゲットで動作します。誰かがこれで私を助けることができますか?ありがとう!ここでMakefile - サーバーの後に同時にクライアントを実行するには?
私の作品コード:
OPT_GCC = -std=c99 -Wall -Wextra
#compiler options and libraries for Linux
OPT = -D_XOPEN_SOURCE=700
LIB = -lrt -lpthread
CLIENTS = 3
MFLAGS = -j$(CLIENTS)
all: client server
client: mediasharingclient.c
gcc $(OPT_GCC) $(OPT) -o client mediasharingclient.c $(LIB)
server: mediasharingserver.c
gcc $(OPT_GCC) $(OPT) -o server mediasharingserver.c $(LIB)
run_server: server
./server ../sample1/send-order.txt&
run_clients: client1 client2 client3
client1:
./client 1 client1
client2:
./client 2 client2
client3:
./client 3 client3
clean:
rm -f client server
私は:make run_server
とmake run_clients -j3
これはGNU Make 4.1を使って私にとってはうまくいきます。 2つのターゲットで動作すると言えば、2つのクライアント(client1とclient2)、またはサーバーと1つのクライアントで動作することを意味しますか? –
'run:run_c1 run_c2 run_c3'を実行して' make run -j4'を実行する前に、2回(サーバ用とクライアント用)に2回作っていますが、サーバが実行するため正しく動作しませんそのクライアントプロセスの前に必ず実行されるとは限りません –
しかし、2つのクライアントを同時に実行できますか?あなたはどのOSを実行しており、どのブランドのものを作っていますか?私は問題がMakefileにあるとは思わない。 –