undefined reference to 'sqrtf' , 'cosf, in nrf5340

I am working on nrf5340 DK using segger embedded studio. Using peripheral_uart example and i added SPI interface code. I need to integrate ICM20948 library to this application. Added all icm20948 related source code in CMakeList.txt ( Inside peripheral uart folder ). But while compiling getting undefined reference to 'sqrt' error. These function actually using in Icm20948DataConverter.c file inside ICM20948 library.

I am attaching modified CMakeList.txt

#
# Copyright (c) 2018 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
cmake_minimum_required(VERSION 3.20.0)

set(PM_STATIC_YML_FILE
  ${CMAKE_CURRENT_SOURCE_DIR}/boards/pm_static_${BOARD}.yml
  )

find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(NONE)

# NORDIC SDK APP START
target_sources(app PRIVATE
  src/main.c
)

target_sources(app PRIVATE
  scs/sh_sensor.c
)

target_sources(app PRIVATE
  src/icm_spi.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948Setup.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948DataBaseDriver.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948Transport.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948AuxCompassAkm.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948Augmented.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948AuxTransport.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948DataBaseControl.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948Dmp3Driver.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948LoadFirmware.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948MPUFifoControl.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948DataConverter.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Drivers/ICM20948/Icm20948SelfTest.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/DynamicProtocol/DynProtocol.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/DynamicProtocol/DynProtocolTransportUart.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/EmbUtils/DataConverter.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/EmbUtils/InvScheduler.c
  ../../../../thirdparty/eMD/EMD-Core/sources/Invn/Devices/Sensor.c
)

# Include UART ASYNC API adapter
target_sources_ifdef(CONFIG_BT_NUS_UART_ASYNC_ADAPTER app PRIVATE
  src/uart_async_adapter.c
)

# Preinitialization related to Thingy:53 DFU
target_sources_ifdef(CONFIG_BOARD_THINGY53_NRF5340_CPUAPP app PRIVATE
  boards/thingy53.c
)
target_sources_ifdef(CONFIG_BOARD_THINGY53_NRF5340_CPUAPP_NS app PRIVATE
  boards/thingy53.c
)

# NORDIC SDK APP END

zephyr_library_include_directories(.)
 

Pls help me to solve this issue!

Note: SPI is working and ICM20948 library integration also working fine , i am getting all sensor data. Only issue is undefined reference to 'sqrtf' , 'cosf when iam calling some API,s. I think its because of math.h library linking issue. I don't know how to link standard library in CMakeList.txt ,

Parents Reply Children
Related