undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'

i try to use virtual function but it look like the vtable undefined?

here is the error log that shown when build

FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map /workspaces/semudah-nrf-firmware/build/zephyr/zephyr_pre0.map 
: && ccache /root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/arm-zephyr-eabi-g++   zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf  zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj  -fuse-ld=bfd  -Wl,-T  zephyr/linker_zephyr_pre0.cmd  -Wl,-Map=/workspaces/semudah-nrf-firmware/build/zephyr/zephyr_pre0.map  -Wl,--whole-archive  app/libapp.a  zephyr/libzephyr.a  zephyr/arch/common/libarch__common.a  zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a  zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a  zephyr/arch/arch/arm/core/aarch32/mpu/libarch__arm__core__aarch32__mpu.a  zephyr/lib/libc/minimal/liblib__libc__minimal.a  zephyr/lib/posix/liblib__posix.a  zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a  zephyr/soc/arm/nordic_nrf/nrf52/libsoc__arm__nordic_nrf__nrf52.a  zephyr/drivers/clock_control/libdrivers__clock_control.a  zephyr/drivers/console/libdrivers__console.a  zephyr/drivers/gpio/libdrivers__gpio.a  zephyr/drivers/serial/libdrivers__serial.a  zephyr/drivers/timer/libdrivers__timer.a  zephyr/drivers/pinctrl/libdrivers__pinctrl.a  modules/nrf/lib/fatal_error/lib..__nrf__lib__fatal_error.a  modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a  modules/segger/libmodules__segger.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  -L"/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/thumb/v7e-m/nofp"  -L/workspaces/semudah-nrf-firmware/build/zephyr  -lgcc  src/Example/libexample.a  src/ButtonInterface/libbutton_interface.a  src/Indicator/libindicator.a  src/Fsm/libfsm.a  src/Pattern/libpattern.a  zephyr/arch/common/libisr_tables.a  -no-pie  -mcpu=cortex-m4  -mthumb  -mabi=aapcs  -mfp16-format=ieee  -Wl,--gc-sections  -Wl,--build-id=none  -Wl,--sort-common=descending  -Wl,--sort-section=alignment  -Wl,-u,_OffsetAbsSyms  -Wl,-u,_ConfigAbsSyms  -nostdlib  -static  -Wl,-X  -Wl,-N  -Wl,--orphan-handling=warn && cd /workspaces/semudah-nrf-firmware/build/zephyr && /usr/local/lib/python3.8/dist-packages/cmake/data/bin/cmake -E echo
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN8PollableC2Ev[_ZN8PollableC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN8PollableC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN10ObservableC2Ev[_ZN10ObservableC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN10ObservableC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN5StateIiEC2Ev[_ZN5StateIiEC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN5StateIiEC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN15ObservableStateIiEC2Ev[_ZN15ObservableStateIiEC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN15ObservableStateIiEC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN3etl8delegateIFivEE18invocation_elementC2Ev[_ZN3etl8delegateIFivEE18invocation_elementC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN3etl8delegateIFivEE18invocation_elementC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN3etl8delegateIFivEEC2Ev[_ZN3etl8delegateIFivEEC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN3etl8delegateIFivEEC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN3etl8delegateIFjvEE18invocation_elementC2Ev[_ZN3etl8delegateIFjvEE18invocation_elementC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN3etl8delegateIFjvEE18invocation_elementC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZN3etl8delegateIFjvEEC2Ev[_ZN3etl8delegateIFjvEEC5Ev]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZN3etl8delegateIFjvEEC2Ev'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZNK3etl8delegateIFivEEclEv[_ZNK3etl8delegateIFivEEclEv]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZNK3etl8delegateIFivEEclEv'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab.text._ZNK3etl8delegateIFjvEEclEv[_ZNK3etl8delegateIFjvEEclEv]' from `src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj)' being placed in section `.ARM.extab.text._ZNK3etl8delegateIFjvEEclEv'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: warning: orphan section `.ARM.extab' from `src/Pattern/libpattern.a(Observer.cpp.obj)' being placed in section `.ARM.extab'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata+0x90): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata+0xc4): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata+0xf4): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.ARM.exidx+0x8): undefined reference to `__aeabi_unwind_cpp_pr1'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.ARM.exidx+0x10): undefined reference to `__aeabi_unwind_cpp_pr0'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.ARM.exidx.text._ZNK3etl8delegateIFivEEclEv[_ZNK3etl8delegateIFivEEclEv]+0x0): undefined reference to `__aeabi_unwind_cpp_pr1'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.ARM.exidx.text._ZNK3etl8delegateIFjvEEclEv[_ZNK3etl8delegateIFjvEEclEv]+0x0): undefined reference to `__aeabi_unwind_cpp_pr1'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTV15ObservableStateIiE[_ZTV15ObservableStateIiE]+0x8): undefined reference to `__cxa_pure_virtual'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTV5StateIiE[_ZTV5StateIiE]+0x8): undefined reference to `__cxa_pure_virtual'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTV8Pollable[_ZTV8Pollable]+0x8): undefined reference to `__cxa_pure_virtual'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI15ObservableStateIjE[_ZTI15ObservableStateIjE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI5StateIjE[_ZTI5StateIjE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI15ObservableStateIiE[_ZTI15ObservableStateIiE]+0x0): undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI5StateIiE[_ZTI5StateIiE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI8Pollable[_ZTI8Pollable]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI8Observer[_ZTI8Observer]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/ButtonInterface/libbutton_interface.a(ButtonInterface.cpp.obj):(.rodata._ZTI10Observable[_ZTI10Observable]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
/root/zephyr-sdk-0.14.2/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: src/Pattern/libpattern.a(Observer.cpp.obj):(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr1'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /usr/local/bin/cmake --build /workspaces/semudah-nrf-firmware/build
The terminal process terminated with exit code: 1.

Related