gpt4 book ai didi

linux - 从 makefile 并行运行两个进程

转载 作者:IT王子 更新时间:2023-10-29 00:27:18 25 4
gpt4 key购买 nike

我正在尝试同时运行服务器和客户端以从 makefile 运行:

目标:

   ./server&
./client

问题是 server& 永远不会返回控制权,即使我认为它应该在后台运行。它一直在监听从未调用的客户端,因为 makefile 似乎没有从服务器取回控制权。我该如何解决这个问题?无需编写任何额外的目标或脚本?

最佳答案

你应该能够通过将命令组合在一行中来做到这一点:

target:
./server& ./client

将命令行交给 shell ($(SHELL)) 一次一行

或者,您可以定义两个独立的目标:

target: run_server run_client

run_server:
./server
run_client:
./client

并使用 -j 选项运行 make 以使其并行构建步骤:

make -j2

这似乎不是启动程序(例如测试)的最自然的解决方案,但当您有大量可以部分并行构建的构建规则时效果最好。 (要更多地控制 make - 目标的并行化,另请参阅

.NOTPARALLEL

If .NOTPARALLEL is mentioned as a target, then this invocation of make will be run serially, even if the ‘-j’ option is given. Any recursively invoked make command will still run recipes in parallel (unless its makefile also contains this target). Any prerequisites on this target are ignored.

关于linux - 从 makefile 并行运行两个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com