在Makefile中继续之前,不要等待完成

在Makefile中继续之前,不要等待完成,makefile,Makefile,我希望在后台从Makefile启动一个调试器程序。我希望make调用完成并返回,并保持调试器运行。它可以在shell中正常工作,但当我将其放入Makefile时,make会等待所有触发的进程完成 我已经尝试了以下测试目标,包括- sleep: -sleep 5 & 不管怎样,make都会坐在那里等待睡眠完成 我知道这不是make的正常用法,但它允许我使用与构建目标相同的设置来演示调试器启动器。您是否尝试过在睡眠之前的“之前添加一个回音”并在它之后的“之后添加一个回音” 我想您会

我希望在后台从Makefile启动一个调试器程序。我希望make调用完成并返回,并保持调试器运行。它可以在shell中正常工作,但当我将其放入Makefile时,make会等待所有触发的进程完成

我已经尝试了以下测试目标,包括
-

sleep:
    -sleep 5 &
不管怎样,make都会坐在那里等待
睡眠
完成


我知道这不是make的正常用法,但它允许我使用与构建目标相同的设置来演示调试器启动器。

您是否尝试过在
睡眠
之前的“之前添加一个
回音”并在它之后的“
之后添加一个
回音”


我想您会注意到,Make并不是等待
sleep5&
本身完成,而是等待目标启动的所有进程完成,然后才认为该目标已完成。您将需要生成一个新的进程--尝试
nohup
而不是
programmname&

我应该问的问题的答案是:

sleep:
    cygstart sleep 5

Eclipse现在认为构建已立即完成。

无法重现。如果我有一个像您这样的Makefile,只做了一个更改:
sleep 5&&echo done&
,然后运行
make
,它会立即退出命令行(打印命令后),5秒钟后我会看到“done”。这是一个很好的例子,说明我是一个不好的提问者。在命令行中,它按照您所说的那样操作,在Eclipse中,它保持打开状态。所以,我的问题根本不是make,而是eclipse。我投票结束了我的问题,因为它是无效的。啊,好的。嗯,这是有道理的——eclipse将为make生成的子进程保持控制台的打开状态。Make可能已经退出(按照@Marcus的建议,尝试在睡眠行之后添加一个
echo)。您可以尝试
nohup
,以及将stdin/stdout重定向到/dev/null。而且,你可以随时更新你的问题!它不会等到一个目标启动的所有进程都完成后再考虑该目标是否完成,它会立即退出。