-
Notifications
You must be signed in to change notification settings - Fork 132
Build Fails with Sloeber 4.3.3 Product and Arduino ESP32 Core 3.0.1. #1652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Well I fixed my build by adding/changing the following build Variables (Project-RMB->Properties->C/C++ Build->Environment):
Hope this is what you were looking form. |
WOW! I don't know what any of that meant, but it worked. Thanks!!! |
Hi |
Ditto. I think (but am not sure) that these settings are only used to format diagnostic messages. I used:
Pro tips for ESP32 developers: Use the library manager to hide the Arduino FreeRTOS and I2C libraries. If they are present, Slober automatically includes them in projects (at least it does for me), and compilation fails due to undefined symbols. |
I opened the project environment by right clicking on the project and selecting Properties > C/C++ Build > Environment and found ARDUINO_FQBN and ARDIONO_HOST_OS are defined by: -DARDUINO_HOST_OS="${runtime.os}" -DARDUINO_FQBN="${build.fqbn}" -DESP32 -DCORE_DEBUG_LEVEL=${build.code_debug} ${build.loop_core} ${build.event_core} ${build.defines} ${build.extra_flags.${build.mcu}} ${build.zigbee_mode} ARDUINO_VARIANT is defined by: "${compiler.path}${compiler.c.cmd}" ${compiler.S.extra_flags} ${compiler.S.flags} -DF_CPU=${build.f_cpu} -DARDUINO=${runtime.ide.version} -DARDUINO_${build.board} -DARDUINO_ARCH_${build.arch} "-DARDUINO_BOARD="${build.board}"" -DARDUINO_VARIANT="${build.variant}" -DARDUINO_PARTITION_${build.partitions} ${build.extra_flags} ${compiler.cpreprocessor.flags} ${FLAGS} -D__IN_ECLIPSE__=1 "@${file_opts.path}" ${INPUTS} -o ${OUTPUT} ${sloeber.extra.assembly} ${sloeber.extra.all} The compiler finds the following errors: /home/eric/Sloeber/arduinoPlugin/packages/esp32/hardware/esp32/3.0.2/cores/esp32/chip-debug-report.cpp:215:67: error: expected primary-expression before ')' token These imply: ARDUINO_HOST_OS is undefined Changint build.fqbn to "" fixed ARDUINO_FQBN Updating the environment automatically added the FreeRTOS and nI2C_master libraries to the project. Both libraries target AtMel processors, so they caused the build to fail. I used the library manager to remove the FreeRTOS library, but haven't yet been able to remove nI2C_master. Searching the code for build.variant in hopes of finding where its value is set and found: eric@mighty-wurlitzer:~/Downloads/from_git/sloeber$ grep -r build.variant * These show where the value is used. If I could find where it is set, I could probably fix all three. Can you advise, please? |
Can you provide a screenshot of these environment variables (they absolutely make no sense to me) and off the project properties->sloeber? |
Will do, but a bit of background might make things even clearer. ESP made two breaking changes in version 3 of its libraries, one in the Non-Volatile Storage API, the other in the core library. The change to the core library broke Sloeber. The newest library contains chip-debug-report.cpp, which was added at version 3. This file requires the following preprocessor symbols: ARDUINO_VARIANT: the board name. This must be a string literal, e.g. "node32s". Sloeber currently defines it without the surrounding quotes. ARDUINO_FQBN: I have no idea what this means. Like ARDUINO_VARIANT, it must be a string literal. ARDUINO_HOST_OS: the operating system running on the ESP32. Like all the others, it must be a string literal. I reverse engineered all this by backtracking from the compiler options to the environment variables. When I changed the environment as described above, the compile succeeded and everything worked just fine. Please let me know if you want a screenshot of the environment. |
Ok now I understand what you meant.
IMHO Having the surrounding quotes on the command line in Sloeber is going to be very hard. |
This won't be that easy as I'm rewriting a part of Sloeber that is determining this behaviour and is not yet finished. |
Oh. Perhaps I could prepare to help maintain the new version. Can you suggest any documentation I could read to get ready to assist? |
Help is always welcome. |
Indeed sloeber does so. Anyway; I hardcoded to ignore freertos when ESP32 unresolved includes are searched in V5. |
Closing as fixed in the nightly |
Sigh … just added Adruino ESP32 Core 3.0.1 to my Sloeber 4.3.3 Product installation and building of a blank project (using “Default cpp file” option) fails. This seems related to #200 and #1649, but they don't provide proper instructions for fixing it.
Could someone please write down clear and complete instructions (all in one place, not a bunch of links) for a workaround until this is fixed in Sleober? Please include:
Thanks!!!
The text was updated successfully, but these errors were encountered: