Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    Linker error on BSEC2 Arduino example sketch for ESP32 platform

    Linker error on BSEC2 Arduino example sketch for ESP32 platform

    fritz
    Member

    Hello,

    I'm trying to setup Arduino development environment for ESP32 platform on Linux.

    I've installed following packages:

    - Arduino 1.8.19

    - ESP32 platform: 2.0.5

    - latest BSEC2 lib from https://github.com/BoschSensortec/Bosch-BSEC2-Library as ZIP archive

    - latest MBE68x lib from https://github.com/BoschSensortec/Bosch-BME68x-Library as ZIP archive

    Trying to compile the a basic BSEC2 exapmle sketch leads to a very known linker error: e.g.:

    /home/vitali/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: libraries/Bosch-BSEC2-Library-master/bsec2.cpp.o:(.literal._ZN5Bsec218updateSubscriptionEP21bsec_virtual_sensor_thf+0x0): undefined reference to `bsec_update_subscription'
    /home/vitali/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: libraries/Bosch-BSEC2-Library-master/bsec2.cpp.o:(.literal._ZN5Bsec28getStateEPh+0x8): undefined reference to `bsec_get_state'
    /home/vitali/.arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/gcc8_4_0-esp-2021r2-patch3/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: libraries/Bosch-BSEC2-Library-master/bsec2.cpp.o:(.literal._ZN5Bsec28setStateEPh+0x0): undefined reference to `bsec_set_state'

    Obviously, the platform.txt file for ESP32 2.0.5 needs to be updated. (The original platform.txt file from ESP32 2.0.5 is in att)

    Please note: all available in the forum fixes for platform.txt file have too many differences to the 2.0.5 and doesn't wok ether.

    Thanks in advance!

    2 REPLIES 2

    fritz
    Member

     ... putting the linker flags in to platform.local.txt (in the same dir as platform.txt)

    pointing to the BSEC2 lib solves the problem, e.g.:

        compiler.libraries.ldflags=-L/home/vitali/Arduino/libraries/Bosch-BSEC2-Library-master/src/esp32 -lalgobsec

    But, the question is, is it the proper way how the third party libs should be integrated?

     

    BSTRobin
    Community Moderator
    Community Moderator

    Hi fritz,

    You could refer the integration guide https://github.com/BoschSensortec/BSEC-Arduino-library/blob/master/README.md for Arduino enrivonment.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist