我正在编写一个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
答案 0 :(得分: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