Bsec2 library as Arduino Component in ESP-IDF project

Is there any way I can resolve the linking stage error while I am using Bsec2 library as Arduino component in my ESP-IDF project?

Here is the error log:

[1535/1537] Linking CXX executable main.elf

FAILED: main.elf

cmd.exe /C "cd . && C:\Espressif\tools\tools\xtensa-esp32-elf\esp-12.2.0_20230208\xtensa-esp32-elf\bin\xtensa-esp32-elf-g++.exe -mlongcalls -Wno-frame-address -Wl,--cref -Wl,--defsym=IDF_TARGET_ESP32=0 -Wl,--Map=D:/Jigisha/ESP-IDF/bme688_NW/build/main.map -Wl,--no-warn-rwx-segments -fno-rtti -fno-lto -Wl,--gc-sections -Wl,--warn-common -T esp32.peripherals.ld -T esp32.rom.ld -T esp32.rom.api.ld -T esp32.rom.libgcc.ld -T esp32.rom.newlib-data.ld -T esp32.rom.syscalls.ld -T esp32.rom.newlib-funcs.ld -T memory.ld -T sections.ld @CMakeFiles\main.elf.rsp -o main.elf && cd ."

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(main.cpp.obj): in function `app_main':

D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/cores/esp32/main.cpp:81: multiple definition of `app_main'; esp-idf/main/libmain.a(main.cpp.obj):D:/Jigisha/ESP-IDF/bme688_NW/main/main.cpp:49: first defined here

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec218updateSubscriptionEP21bsec_virtual_sensor_thf+0x0): undefined reference to `bsec_update_subscription_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec211processDataExRK11bme68x_data+0x0): undefined reference to `bsec_do_steps_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec211beginCommonEv+0x4): undefined reference to `bsec_get_instance_size_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec211beginCommonEv+0x8): undefined reference to `bsec_init_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec211beginCommonEv+0xc): undefined reference to `bsec_get_version_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj):(.literal._ZN5Bsec23runEv+0x4): undefined reference to `bsec_sensor_control_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj): in function `Bsec2::updateSubscription(bsec_virtual_sensor_t*, unsigned char, float)':

D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:116: undefined reference to `bsec_update_subscription_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj): in function `Bsec2::processData(long long, bme68x_data const&)':

D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:353: undefined reference to `bsec_do_steps_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj): in function `Bsec2::beginCommon()':

D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:372: undefined reference to `bsec_get_instance_size_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:372: undefined reference to `bsec_get_instance_size_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:380: undefined reference to `bsec_init_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:384: undefined reference to `bsec_get_version_m'

c:/espressif/tools/tools/xtensa-esp32-elf/esp-12.2.0_20230208/xtensa-esp32-elf/bin/../lib/gcc/xtensa-esp32-elf/12.2.0/../../../../xtensa-esp32-elf/bin/ld.exe: esp-idf/arduino/libarduino.a(bsec2.cpp.obj): in function `Bsec2::run()':

D:/Jigisha/ESP-IDF/bme688_NW/components/arduino/libraries/bsec2/src/bsec2.cpp:138: undefined reference to `bsec_sensor_control_m'

collect2.exe: error: ld returned 1 exit status

ninja: build stopped: subcommand failed.

* The terminal process "C:\Espressif\tools\tools\ninja\1.10.2\ninja.exe" terminated with exit code: 1.

Project github link: https://github.com/jigishaparekh/bme688.git

1 reply