QBS 1.7.1 on Qt Creator 4.2.1 — Link Fails Due to cpp.linkerFlags Parameters Order

  • I've defined the following cpp.linkerFlags on QBS 1.7.1 for Qt Creator 4.2.1

    cpp.linkerFlags: [
      boardPackagePath+"system/driverlib/libdriverlib.a", "-lm","-lc","-lgcc"

    The resulting Linking Test_2.elf is performed as

    arm-none-eabi-g++ {cpp.linkerFlags} {list of .o files}

    while the correct syntax for linking would be

    arm-none-eabi-g++ {cpp.linkerFlags} {list of .o files} {boardPackagePath}+system/driverlib/libdriverlib.a -lm -lc -lgcc

    How to define the last two lines with QBS

      boardPackagePath+"system/driverlib/libdriverlib.a", "-lm","-lc","-lgcc"

    so they are included after the list of .o files?

    Thank you!

  • Same with the MSP432.

    boardPackagePath+"system/driverlib/libdriverlib.a", "-lm","-lc","-lgcc" should be at the very end of the link command, after the list of files.

  • Example of complete implementation on mbedOS with LD_SYS_LIBS:

    @$(LD) $(LD_FLAGS) -T $(filter %.ld, $^) $(LIBRARY_PATHS) --output $@ $(filter %.o, $^) $(LIBRARIES) $(LD_SYS_LIBS)

  • Please find the solution at https://bugreports.qt.io/browse/QBS-1123.

    Main culprit is the lack of structured documentation for Qbs available today.

Log in to reply