It seems to be a bug which happens in this rare case. Best advice is to avoid this is using ':=' in stead of '=', don't pipe the shell expression, don't use $(shell), don't use export OR no -j flag. each one of these prevents this problem.
qmake fails using export with piped shell command
-
31-05-2022 - |
سؤال
I have a problem using qmake (v3.82) on a open sun-grid engine (gridengine-GE2011.11) I've narrowed the problem down using the following makefile code:
export FOO = $(shell echo bar | sed 's/bar/foobar/g')
all: echo1 echo2
echo1:
echo $(FOO)
echo2:
echo $(FOO)
using the following command:
qmake -l arch=linux-x64 -inherit -- -j 2 -f export.mk
I get this output:
echo foobar
dynamic mode
foobar
qmake: *** remote_status: No child processes. Stop.
qmake: *** Waiting for unfinished jobs....
qmake: *** remote_status: No child processes. Stop.
It works without using export
It works without using a pipe in the $(shell) command
It works using FOO:=$(shell) (with a ':')
It works using -j 1 (or no parallelization) in the qmake command
It works using regular make
It's these factors together that screw up something which happens to be the rare case in my makefile.
Does anyone know what causes this or knows of a fix?
المحلول
لا تنتمي إلى StackOverflow