Usted debe ser capaz de hacer esto mediante la combinación de los comandos en una sola línea:
target:
./server& ./client
consigue manos de líneas de comando a la shell ($(SHELL)
) una línea a la vez.
Alternativamente, se podría definir dos objetivos independientes:
target: run_server run_client
run_server:
./server
run_client:
./client
y ejecutar make con la opción -j
para que sea paralelizar construir pasos:
make -j2
Esto no parece la solución más natural para iniciando su programa (por ejemplo, para la prueba) pero funciona mejor cuando tiene un gran número de reglas de compilación que pueden construirse en parte en paralelo. (Para un poco más de control sobre make
-s parallellization de objetivos, consulta
.NOTPARALLEL
Si .NOTPARALLEL
se menciona como un objetivo, entonces esta invocación de maquillaje se llevará a cabo en serie, incluso si el ‘-j’
opción se da. Cualquier comando make de forma recursiva invocado seguirá funcionando recetas en paralelo (a menos que su makefile también contiene este objetivo). Cualquier requisitos previos en este objetivo se ignoran.
Gracias chicos. Está funcionando ahora. El cambio fue que el cliente espera infinitamente que el servidor esté activo y luego haga que ejecute el cliente en segundo plano y el servidor en primer plano. ¡¡¡Gracias!!! –
'fg' no funciona en contexto porque cada línea se ejecuta en un shell separado – Davide