我在打开的太阳网格引擎(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中罕见的情况。
有谁知道是什么导致这个或知道修复?
答案 0 :(得分:0)
这似乎是一个在这种罕见情况下发生的错误。最好的建议是避免使用':='而不是'=',不管道shell表达式,不要使用$(shell),不要使用export OR no -j标志。其中每一个都可以防止这个问题。