July 12, 2010

UrsusExplorans UrsusExplora..
Lab Rat
3 posts

QMake and make with parallel jobs [bug?]

 

Hi folks,

is seems like theres is a bug in the Makefile generation of qmake. When running make after qmake as usual, I get no errors, but running it with multiple jobs, lets say “make -j3”, I get the following error:

  1. make: *** No rule to make target `../../../ui/ui_something.h', needed by `something.o'.  Stop.
  2. make: *** Waiting for unfinished jobs....

It looks like, that the uic does not finish before the other parallel compile jobs start. Is there a way to fix this (I mean not by starting make twice)?

Thanks in advance!

Best,
Eckard

7 replies

July 12, 2010

Vass Vass
Hobby Entomologist
738 posts

As far as I know, qmake run before make, and while qmake work is not done, make don’t start.
-j key does not affect on qmake.

 Signature 


Vasiliy

July 12, 2010

UrsusExplorans UrsusExplora..
Lab Rat
3 posts

No, of course. But qmake seems to write the uic calls into the makefile that make processes. Using make with the -j argument parallelizes the execution of the makefile to a certain extend. But make does not seem to care about the uic calls correctly, because it executes the following compile commands without waiting for the uic calls to be finished (which result in the upper error message).

July 12, 2010

Tobias Hunger Tobias Hunger
Mad Scientist
3125 posts

This sounds like a bug to me. Have you considered filing it in our bugtracker [bugreports.qt.nokia.com] ?

July 12, 2010

UrsusExplorans UrsusExplora..
Lab Rat
3 posts

created a new issue:

QTBUG-12139 [bugreports.qt.nokia.com]

October 27, 2010

kalle kalle
Lab Rat
42 posts

Not sure whether this is the same problem, but did you try CONFIG+=ordered?

In general, if you need high parallelity in your builds, CMake is much more powerful than QMake.

October 28, 2010

¤ Dii ¤ ¤ Dii ¤
Lab Rat
51 posts

I use qmake and make -j4 for ages, never had that problem. I read about a similar problem somewhere, there were some unnecessary #include-s of the same files across the project, and that made some trouble. I don’t know if it has anything to do with your problem.

October 28, 2010

Volker Volker
Robot Herder
5428 posts

I’m using qmake together with make -j8 on several projects for years without any hazzle (including speeding up compilation of my project in Creator).

For me it’s CMake that causes problems with parallel builds. But since I rarely use that, it’s not a real issue for me.

 
  ‹‹ Create window help      Cross-thread signals, disconnect and destructors ››

You must log in to post a reply. Not a member yet? Register here!