Хобрук: Ваш путь к мастерству в программировании

Скрипт Bash для компиляции и запуска нескольких серверов и клиентов c

Я пишу клиент-серверное приложение 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

  • Зачем вам нужно компилировать исполняемый файл клиента несколько раз?? Разве недостаточно один раз скомпилировать и запустить несколько экземпляров? 17.09.2013

Ответы:


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

17.09.2013
Новые материалы

Понимание СТРУКТУРЫ ДАННЫХ И АЛГОРИТМА.
Что такое структуры данных и алгоритмы? Термин «структура данных» используется для описания того, как данные хранятся, а алгоритм используется для описания того, как данные сжимаются. И данные, и..

Как интегрировать модель машинного обучения на ios с помощью CoreMl
С выпуском новых функций, таких как CoreML, которые упростили преобразование модели машинного обучения в модель coreML. Доступная модель машинного обучения, которую можно преобразовать в модель..

Создание успешной организации по науке о данных
"Рабочие часы" Создание успешной организации по науке о данных Как создать эффективную группу по анализу данных! Введение Это обзорная статья о том, как создать эффективную группу по..

Технологии и проблемы будущей работы
Изучение преимуществ и недостатков технологий в образовании В быстро меняющемся мире технологии являются решающим фактором в формировании будущего работы. Многие отрасли уже были..

Игорь Минар из Google приедет на #ReactiveConf2017
Мы рады сообщить еще одну замечательную новость: один из самых востребованных спикеров приезжает в Братиславу на ReactiveConf 2017 ! Возможно, нет двух других кланов разработчиков с более..

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..