02-19-2020 07:58 AM
Hi,
I have installed the BSEC library according to the documentation on GitHub.
I'm using the following components in its version:
- MAC OSX 10.15.3 (latest)
- WEMOS LoLin 32
- BSEC Library: Latest Master on Gihub
- Arduino IDE: 1.8.12
- ESP32 Core: 1.0.4
What I did was extending the `platform.txt` with the variable `compiler.libraries.ldflags=` and added just this variable to the receipe so it loooks like:
## Combine gc-sections, archives, and objects
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} -Wl,--start-group {object_files} "{archive_file_path}" {compiler.c.elf.libs} {compiler.libraries.ldflags} -Wl,--end-group -Wl,-EL -o "{build.path}/{build.project_name}.elf"
I tried to run the 'basic' example. But while compiling/linking I get the following errors:
Using built-in specs.
COLLECT_GCC=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/xtensa-esp32-elf-gcc
COLLECT_LTO_WRAPPER=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/lto-wrapper
Target: xtensa-esp32-elf
Configured with: /Volumes/build/idf/crosstool-NG/.build/src/gcc-5.2.0/configure --build=x86_64-build_apple-darwin16.3.0 --host=x86_64-build_apple-darwin16.3.0 --target=xtensa-esp32-elf --prefix=/Volumes/build/idf/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/Volumes/build/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-sysroot=/Volumes/build/idf/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-80-g6c4433a' --disable-__cxa_atexit --enable-cxx-flags='-fno-rtti -ffunction-sections' --with-gmp=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-cloog=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-libelf=/Volumes/build/idf/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-libgomp --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-nls --enable-languages=c,c++ --disable-libstdcxx-verbose --enable-threads=posix --enable-gcov-custom-rtio
Thread model: posix
gcc version 5.2.0 (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a)
COMPILER_PATH=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/
LIBRARY_PATH=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../xtensa-esp32-elf/sysroot/lib/:/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../xtensa-esp32-elf/sysroot/usr/lib/
COLLECT_GCC_OPTIONS='-nostdlib' '-L/Users/dannyyy/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/tools/sdk/lib' '-L/Users/dannyyy/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/tools/sdk/ld' '-T' 'esp32_out.ld' '-T' 'esp32.common.ld' '-T' 'esp32.rom.ld' '-T' 'esp32.peripherals.ld' '-T' 'esp32.rom.libgcc.ld' '-T' 'esp32.rom.spiram_incompatible_fns.ld' '-u' 'ld_include_panic_highint_hdl' '-u' 'call_user_start_cpu0' '-u' '__cxa_guard_dummy' '-u' '__cxx_fatal_exception' '-v' '-L/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/src/esp32' '-o' 'basic.ino.elf'
/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/collect2 -plugin /Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/liblto_plugin.so -plugin-opt=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../libexec/gcc/xtensa-esp32-elf/5.2.0/lto-wrapper -plugin-opt=-fresolution=/var/folders/pr/57h8bwx95y99np2_1q2jl5j00000gn/T//ccV9B9rK.res --sysroot=/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../xtensa-esp32-elf/sysroot -o basic.ino.elf -u ld_include_panic_highint_hdl -u call_user_start_cpu0 -u __cxa_guard_dummy -u __cxx_fatal_exception -L/Users/dannyyy/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/tools/sdk/lib -L/Users/dannyyy/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/tools/sdk/ld -L/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/src/esp32 -L/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0 -L/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc -L/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/lib -L/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../xtensa-esp32-elf/sysroot/lib -L/Users/dannyyy/Library/Arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/1.22.0-80-g6c4433a-5.2.0/bin/../xtensa-esp32-elf/sysroot/usr/lib --gc-sections -static --undefined=uxTopUsedPriority --start-group sketch/basic.ino.cpp.o libraries/Wire/Wire.cpp.o libraries/SPI/SPI.cpp.o core/core.a -lgcc -lesp32 -lphy -lesp_http_client -lmbedtls -lrtc -lesp_http_server -lbtdm_app -lspiffs -lbootloader_support -lmdns -lnvs_flash -lfatfs -lpp -lnet80211 -ljsmn -lface_detection -llibsodium -lvfs -ldl_lib -llog -lfreertos -lcxx -lsmartconfig_ack -lxtensa-debug-module -lheap -ltcpip_adapter -lmqtt -lulp -lfd -lfb_gfx -lnghttp -lprotocomm -lsmartconfig -lm -lethernet -limage_util -lc_nano -lsoc -ltcp_transport -lc -lmicro-ecc -lface_recognition -ljson -lwpa_supplicant -lmesh -lesp_https_ota -lwpa2 -lexpat -llwip -lwear_levelling -lapp_update -ldriver -lbt -lespnow -lcoap -lasio -lnewlib -lconsole -lapp_trace -lesp32-camera -lhal -lprotobuf-c -lsdmmc -lcore -lpthread -lcoexist -lfreemodbus -lspi_flash -lesp-tls -lwpa -lwifi_provisioning -lwps -lesp_adc_cal -lesp_event -lopenssl -lesp_ringbuf -lfr -lstdc++ -lalgobsec -lalgobsec --end-group -EL -T esp32_out.ld -T esp32.common.ld -T esp32.rom.ld -T esp32.peripherals.ld -T esp32.rom.libgcc.ld -T esp32.rom.spiram_incompatible_fns.ld
sketch/basic.ino.cpp.o:(.literal._Z5setupv+0x10): undefined reference to `Bsec::delay_ms(unsigned int)'
sketch/basic.ino.cpp.o:(.literal._Z5setupv+0x28): undefined reference to `Bsec::begin(unsigned char, TwoWire&, void (*)(unsigned int))'
sketch/basic.ino.cpp.o:(.literal._Z5setupv+0x30): undefined reference to `Bsec::updateSubscription(bsec_virtual_sensor_t*, unsigned char, float)'
sketch/basic.ino.cpp.o:(.literal._Z4loopv+0x8): undefined reference to `Bsec::run(long long)'
sketch/basic.ino.cpp.o:(.literal.startup._GLOBAL__sub_I_iaqSensor+0x8): undefined reference to `Bsec::Bsec()'
sketch/basic.ino.cpp.o: In function `setup()':
/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/examples/basic/basic.ino:18: undefined reference to `Bsec::begin(unsigned char, TwoWire&, void (*)(unsigned int))'
/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/examples/basic/basic.ino:36: undefined reference to `Bsec::updateSubscription(bsec_virtual_sensor_t*, unsigned char, float)'
sketch/basic.ino.cpp.o: In function `loop()':
/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/examples/basic/basic.ino:48: undefined reference to `Bsec::run(long long)'
sketch/basic.ino.cpp.o: In function `_GLOBAL__sub_I_iaqSensor':
/Users/dannyyy/Documents/Arduino/libraries/BSEC-Arduino-library-master/examples/basic/basic.ino:8: undefined reference to `Bsec::Bsec()'
collect2: error: ld returned 1 exit status
exit status 1
Error compiling for board WEMOS LOLIN32.
Any idea what the issue could be?
Kind regards,
Danny
02-19-2020 07:37 PM
In the meantime I did some cross testing of the different versions and computer operating systems.
The result is, everything is working find with ESP32 Core 1.0.4 and the current BSEC library using Arduino IDE 1.8.11. On Mac OSX as well as Windows 10.
So there must be a major change in the Arduino IDE 1.8.12. The only thing I saw in the changelog was
[arduino-builder]
Improved precompiled libraries handling
02-20-2020 11:21 AM
Thanks for the heads-up!
We haven't tested the latest Arduino IDE yet, which seems to have affected the arduino-builder. We'll need some time to update our library to the support latest builder, but will try to let you know if we find anything helpful in the meantime.
02-25-2020 02:20 PM
I can confirm I have the same issue with both my ESP32 and ESP8266 feather bords from Adafruit. I hope you are able to find and remediate the problem very soon. 🙂
03-22-2020 12:29 AM
Hi There,
Did you allready manage to update your library to support the latest builder? I seem to be havng the same issue...