使用piped shell命令导出qmake失败

时间:2013-06-04 15:29:19

标签: shell cluster-computing qmake sungridengine

我在打开的太阳网格引擎(gridengine-GE2011.11)上使用qmake(v3.82)时遇到问题我使用以下makefile代码缩小了问题:

export FOO = $(shell echo bar | sed 's/bar/foobar/g')

all: echo1 echo2

echo1:
    echo $(FOO)
echo2:
    echo $(FOO)

使用以下命令:

qmake -l arch=linux-x64 -inherit -- -j 2 -f export.mk

我得到了这个输出:

echo foobar
dynamic mode
foobar
qmake: *** remote_status: No child processes.  Stop.
qmake: *** Waiting for unfinished jobs....
qmake: *** remote_status: No child processes.  Stop.

无需使用导出即可工作 它在$(shell)命令中不使用管道工作 它使用FOO:= $(shell)(带有':')
它在qmake命令中使用-j 1(或没有并行化)工作 它使用常规make

这些因素一起搞砸了我的makefile中罕见的情况。

有谁知道是什么导致这个或知道修复?

1 个答案:

答案 0 :(得分:0)

这似乎是一个在这种罕见情况下发生的错误。最好的建议是避免使用':='而不是'=',不管道shell表达式,不要使用$(shell),不要使用export OR no -j标志。其中每一个都可以防止这个问题。