Why can't I use -J4 anymore in Build Steps Additional Arguments ?

  • I always use -J4 as an additional build option to get faster build times by using 4 threads. Suddenly I can't use it any more. I have just installed Qtcreator 4.1.0. Perhaps that is the culprit, but surely this is still possible.

    If I add the option the build does not start and just shows a red progress bar. I am sure I am doing something really obviously wrong, but I can't see it ! The following message is printed:

    02:06:18: Running steps for project Robot...
    02:06:18: Starting: "/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" /home/paul/Documents/C++/Robot2016/Robot/Robot/Robot.pro -spec linux-g++-64 CONFIG+=debug -J4
    Usage: /usr/lib/x86_64-linux-gnu/qt5/bin/qmake [mode] [options] [files]
    QMake has two modes, one mode for generating project files based on
    some heuristics, and the other for generating makefiles. Normally you
    shouldn't need to specify a mode, as makefile generation is the default
    mode for qmake, but you may use this to test qmake on an existing project
      -project       Put qmake into project file generation mode
                     In this mode qmake interprets files as files to
                     be built,
                     defaults to *; *; *; *.ts; *.xlf; *.qrc
                     Note: The created .pro file probably will 
                     need to be edited. For example add the QT variable to 
                     specify what modules are required.
      -makefile      Put qmake into makefile generation mode (default)
                     In this mode qmake interprets files as project files to
                     be processed, if skipped qmake will try to find a project
                     file in your current working directory
    Warnings Options:
      -Wnone         Turn off all warnings; specific ones may be re-enabled by
                     later -W options
      -Wall          Turn on all warnings
      -Wparser       Turn on parser warnings
      -Wlogic        Turn on logic warnings (on by default)
      -Wdeprecated   Turn on deprecation warnings (on by default)
       * You can place any variable assignment in options and it will be     *
       * processed as if it was in [files]. These assignments will be parsed *
       * before [files].                                                     *
      -o file        Write output to file
      -d             Increase debug level
      -t templ       Overrides TEMPLATE as templ
      -tp prefix     Overrides TEMPLATE so that prefix is prefixed into the value
      -help          This help
      -v             Version information
      -after         All variable assignments after this will be
                     parsed after [files]
      -norecursive   Don't do a recursive search
      -recursive     Do a recursive search
      -set <prop> <value> Set persistent property
      -unset <prop>  Unset persistent property
      -query <prop>  Query persistent property. Show all if <prop> is empty.
      -cache file    Use file as cache           [makefile mode only]
      -spec spec     Use spec as QMAKESPEC       [makefile mode only]
      -nocache       Don't use a cache file      [makefile mode only]
      -nodepend      Don't generate dependencies [makefile mode only]
      -nomoc         Don't generate moc targets  [makefile mode only]
      -nopwd         Don't look for files in pwd [project mode only]
    ***Unknown option -J4
    02:06:18: The process "/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" exited with code 1.
    Error while building/deploying project Robot (kit: Desktop)
    When executing step "qmake"
    02:06:18: Elapsed time: 00:00.

  • Hi @elpidiovaldez5

    As far as I know, qmake has never had support for running multiple jobs in parallel. I wouldn't really expect it to either, since its simply a build script generator (albeit a pretty advanced one). It's actually the make (most platforms) or nmake (Windows) commands that control the builds, so its those commands that you'd want to use -j4 (or equivalent) with.

    For example, on Linux:

    make -j4

    or on Windows:

    nmake /MP4


  • Moderators

    @elpidiovaldez5 To add to @Paul-Colby : shouldn't it be -j4 (not -J4)?

  • @jsulm @Paul-Colby

    Both of you are right, but the stupid thing, that I could not see, was that I was using the qmake arguments field in QtCreator instead of the make arguments field.

    Thanks very much.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.