LVGL and MPLAB X project on Windows - GCC and CreateProcess issue


I am creating a basic MPLAB X project in Windows to include the use of LVGL. I have followed all the steps to set up the project as explained on the website. There were quite a few issues in terms of file inclusion, particularly involving “lvgl/lvgl.h”, but after defining LV_CONF_INCLUDE_SIMPLE, that seemed to be sorted out.

Now, when building the project, the build fails with the following error:
“make (e=87): The parameter is incorrect.”

From reading up on the issue, it seems like this issue is triggered due to the Windows limitation of 32k on the CreateProcess function that is used during the project build. This also doesn’t seem to be an issue limited to MPLAB X , as there seem to be various cases of this same issue in platforms such as Eclipse, NXP, etc.

Some online answers suggested that the project could be split up in libraries and built in stages, but I have no idea where to start with this approach. Others suggest that the project be built in Linux where this limit is not a problem.

There must be a straight-forward solution to this issue, as I believe there are a lot of Windows users that use LVGL and have no issues with this. How does e.g. Arduino avoid this issue? I have also seen some projects using the PIC32 and LVGL, so I know this is possible, I am likely just missing something.

I am attaching a text file with the complete build console output, as it is very long and I don’t want to clutter this question.

Kindly advise on how to move forward with this.

What MCU/Processor/Board and compiler are you using?

Microchip PIC32MX530F128H, XC32 compiler version 1.34 (I know, it is an old one, still using peripheral libraries at the moment, but in the process of moving away from it).

What do you want to achieve?

Develop a UI with a few buttons on a screen for a system. I don’t intend using TFT_eSPI, I am using a library provided by the manufacturer of the display.

What have you tried so far?

Creating a basic MPLAB X project and added LVGL as per the online guidelines. Defined LV_CONF_INCLUDE_SIMPLE.

Code to reproduce

Not much to show, just added lv_init() to main() and added lv_tick_init() in an ISR occurring every 1 ms, as per the website’s “Getting started” guidelines.

Screenshot and/or video

None of this, but attached a file containing the console output during the build process where this fails.

MPLAB X build issue console output.txt (314.2 KB)