This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Compiling issues of Keil (List of undefined symbols)

Hi,

I am trying to integrate the Mesh SDK to my current BLE project which is in Keil. After porting some .h and .c files. I am getting the following errors:

linking...
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_on_sd_evt (referred from mesh_main.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol heartbeat_public_info_getter_register (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol heartbeat_publication_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol heartbeat_publication_set (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol heartbeat_subscription_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol heartbeat_subscription_set (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_opt_core_adv_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_opt_core_adv_set (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol net_beacon_state_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol net_beacon_state_set (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_address_type_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_evt_handler_add (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_keygen_virtual_address (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_unique_token_get (referred from config_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol bearer_event_critical_section_begin (referred from health_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol bearer_event_critical_section_end (referred from health_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_config_entry_get (referred from health_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_config_entry_set (referred from health_server.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol rand_hw_rng_get (referred from uecc.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_auth_data_provide (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_bearer_add (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_bearer_adv_interface_get (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_generate_keys (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_init (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_listen (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_prov_listen_stop (referred from mesh_provisionee.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol timeslot_restart (referred from mesh_adv.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_config_entry_delete (referred from access.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_mem_alloc (referred from access.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_mem_free (referred from access.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_packet_send (referred from access.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol net_state_key_refresh_phase_changed (referred from device_state_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_keygen_aid (referred from device_state_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_keygen_beacon_secmat (referred from device_state_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_keygen_network_secmat (referred from device_state_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_subnet_added (referred from device_state_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol bearer_event_flag_add (referred from timer_scheduler.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol bearer_event_flag_set (referred from timer_scheduler.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol bearer_event_in_correct_irq_priority (referred from timer_scheduler.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol entry_get (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol flash_manager_defrag (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol flash_manager_defrag_init (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol flash_manager_defrag_is_running (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol flash_manager_defrag_recovery_page_get (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol flash_manager_defragging (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_flash_op_push (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_flash_set_suspended (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_flash_user_callback_set (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_commit (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_free (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_init (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_is_empty (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_pop (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol packet_buffer_reserve (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol queue_init (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol queue_pop (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol queue_push (referred from flash_manager.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol hal_device_reset (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_config_backend_flash_usage_get (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_config_load (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol mesh_opt_clear (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol net_state_iv_index_set (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol net_state_reset (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_enable (referred from mesh_stack.o).
.\_build\nrf52840_xxaa.axf: Error: L6218E: Undefined symbol nrf_mesh_init (referred from mesh_stack.o).

I am aware that by manually adding the source code to the project would solve the problem. But tracing the symbols separately from the source code files is time-consuming.

Did I miss any configuration setting which I can include the directory paths and Keil can link the symbols automatically? I have added all directories paths to Keil user paths but still the problem still exists.

Any advice/solution on this is much appreciated. Thank you very much!

Related