我试图运行服务器和客户端从makefile运行:
目标:
./server&
./client
Run Code Online (Sandbox Code Playgroud)
问题是服务器&永远不会返回控件,即使我认为它应该在后台运行.它一直在监听从未调用的客户端,因为makefile似乎没有从服务器获取控制权.我该如何解决这个问题?没有写任何额外的目标或脚本?
关于维沙尔
seh*_*ehe 17
您应该可以通过在单行上组合命令来完成此操作:
target:
./server& ./client
Run Code Online (Sandbox Code Playgroud)
一次将命令行交给shell($(SHELL))一行.
或者,您可以定义两个独立目标:
target: run_server run_client
run_server:
./server
run_client:
./client
Run Code Online (Sandbox Code Playgroud)
并使用-j选项运行make 以使其并行化构建步骤:
make -j2
Run Code Online (Sandbox Code Playgroud)
这似乎不是启动程序的最自然的解决方案(例如,用于测试),但如果您有大量可以部分并行构建的构建规则,则效果最佳.(对于make目标并行化的更多控制,请参见
如果
.NOTPARALLEL被提及为目标,那么即使‘-j’给出了选项,也会以串行方式运行make的调用.任何递归调用的make命令仍将并行运行配方(除非其makefile也包含此目标).此目标的所有先决条件都将被忽略.