0

我正在编写一个 C++ 客户端/服务器应用程序,它带有一个接受来自多个客户端的连接的多线程服务器。我需要编写一个 bash 脚本来编译和执行服务器和客户端的多个实例。客户端和服务器位于不同的文件夹中。

我试过这种方式,但它不起作用,因为它只启动服务器:

#!/bin/sh
cd "/home/myhost/ServerSide"
g++ -std=c++11 -pthread server_struct.cpp -o server     
./server

cd "/home/myhost/ClientSide"
g++ -std=c++11 client.cpp -o client1
./client1

cd "/home/myhost/ClientSide"
g++ -std=c++11 client.cpp -o client2
./client2
4

1 回答 1

1

通常我会将构建过程与运行您的应用程序分开。此外,我建议make用于构建,而不是 bash 脚本。

Makefile(注意缩进!):

CXXFLAGS=-std=c++11

VPATH=ServerSide ClientSide

all: client server

server: server_struct.o
    $(CXX) -o $@ $^ $(LDFLAGS)
client: client.o
    $(CXX) -o $@ $^ $(LDFLAGS)
runall: server client
    xterm -e ./server &
    xterm -e ./client &
    xterm -e ./client &

然后简单地运行make runall

于 2013-09-17T08:22:56.223 回答