Important: Please read the Qt Code of Conduct -

building for ESP32

  • Hi all -

    My latest task is to write an app for the Espressif ESP32. Naturally, I'd like to use Creator as my IDE, even though I won't be using any Qt code on the target. The toolchain is provided by Espessif, and seems to be a GNU derivative (can be found here). The target will be running FreeRTOS.

    • Has anyone attempted this yet?
    • is there any chance I'll be able to use the Creator front end to the debugger?
    • the existing make handles the flashing of the target. Can anyone foresee a reason that I can't continue to do this?


  • OK, let's start small with this: I've added the toolchain supplied by espressif to the list of compilers known to Qt Creator. At the bottom of the window, there's a section titled "ABI:" and I have no idea what to do with these fields.

    I've looked for an explanation of them, but can't find one. Can someone tell me what these fields are? I figure the first one is architecture, none of which match the Xtensa. The second one seems to be a list of OSs, none of which match mine (FreeRTOS). Third one, the only choice is "unknown." Fourth, I really don't know...seems to be related to the built package (guessing). Fifth I'm assuming is for the target, which in my case is 32 bits.

    Anyway, if someone could provide some information on these fields, I'd appreciate it.

  • Hi,

    I am currently working on a plugin for Qt Creator to support Espressif SDK (ESP8266 first)
    My first try was to add a new GCC compiler for ESP8266 (xtensa-lx106-gcc), without success with latest QtCreator versions. So I have reported an issue related to the espressif toolchain in QtCreator bug repport platorm

    ABI is for Application Binary Interface ([Wikipedia] An ABI defines how data structures or computational routines are accessed in machine code, which is a low-level, hardware-dependent format; in contrast, an API defines this access in source code, which is a relatively high-level, relatively hardware-independent, often human-readable format)

    In my understanding, the ABI shown in QtCreator can be resumed in ARCH-OS-OSFLAVOR-BINARYFORMAT-WORDSIZE (x86-linux-generic-64bit for example)

    I hope it will help :)

  • @mzimmers said in building for ESP32:

    there's a section titled "ABI:" and I have no idea what to do with these fields.

    Not that I have used it myself as you're doing, but from documentation

    You can also create a custom ABI definition

    I guess is some value you can create on your own, following for instance the pattern mentioned in previous thread, but that Qt Creator will use to:

    warn about ABI mismatches within the kits

    so if you check different built-in kits you may end up with the correct pattern/value for your board.

  • Thanks for the information, guys. I'm still wrestling with this effort. Currently, I'm wondering how to go about creating a "fake" Qt installation per creator-developing-baremetal. I tried creating a do-nothing program named Qmake.exe, but Creator wouldn't allow me to use it (didn't show up in the selection window).

    This is potentially a big use for Creator; I hope the developers improve upon it (at least the documentation).

  • Lifetime Qt Champion

    @mzimmers You don't need qmake.exe to use QtCreator. A Kit in QtCreator can be used without Qt version. But without qmake.exe you will not be able to use QMake build system. You still can use CMake in QtCreator.

Log in to reply