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

Undefined reference errors when linking

I am having trouble linking my ble mesh project, at first worked perfectly but now well it doesn't link, I haven't changed anything that I can think of. I used the lightswitch_server as a template. I am running Segger build 2020011001.41059, and on Manjaro Linux. It looks like there is some errors with the ble mesh friend system, because most of the errors have something to do with friend stuff. I think `#define MESH_FEATURE_FRIEND_ENABLED (1)` could have something to do with it. Below you can find my errors, and solution file.

I am using the nrf52833.

Name="Common"
      arm_architecture="v7EM"
      arm_core_type="Cortex-M4"
      arm_endian="Little"
      arm_fp_abi="Hard"
      arm_fpu_type="FPv4-SP-D16"
      arm_linker_heap_size="1024"
      arm_linker_process_stack_size="0"
      arm_linker_stack_size="2048"
      arm_linker_treat_warnings_as_errors="No"
      arm_simulator_memory_simulation_parameter="RWX 00000000,00100000,FFFFFFFF;RWX 20000000,00010000,CDCDCDCD"
      arm_target_device_name="nrf52833_xxAA"
      arm_target_interface_type="SWD"
      c_user_include_directories="include;./models/include;./common/include;$(MESH_ROOT:../../../)external/rtt/include;$(SDK_ROOT:../../../.  ./nRF5_SDK_16.0.0_98a08e2)/integration/nrfx/legacy;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/modules/nrfx/drivers/include;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/queue;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/balloc;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/libuarte/;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/ble/common;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/softdevice/common;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/strerror;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/atomic;$(MESH_ROOT:../../../)models/model_spec/generic_onoff/include;$(MESH_ROOT:../../../)models/model_spec/common/include;$(MESH_ROOT:../../../)models/foundation/config/include;$(MESH_ROOT:../../../)models/foundation/health/include;$(MESH_ROOT:../../../)mesh/stack/api;$(MESH_ROOT:../../../)mesh/core/api;$(MESH_ROOT:../../../)mesh/core/include;$(MESH_ROOT:../../../)mesh/access/api;$(MESH_ROOT:../../../)mesh/access/include;$(MESH_ROOT:../../../)mesh/dfu/api;$(MESH_ROOT:../../../)mesh/dfu/include;$(MESH_ROOT:../../../)mesh/prov/api;$(MESH_ROOT:../../../)mesh/prov/include;$(MESH_ROOT:../../../)mesh/bearer/api;$(MESH_ROOT:../../../)mesh/bearer/include;$(MESH_ROOT:../../../)mesh/gatt/api;$(MESH_ROOT:../../../)mesh/gatt/include;$(MESH_ROOT:../../../)mesh/friend/api;$(MESH_ROOT:../../../)mesh/friend/include;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/softdevice/s132/headers/;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/softdevice/s132/headers/nrf52/;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/modules/nrfx;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/modules/nrfx/mdk;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/modules/nrfx/hal;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/toolchain/cmsis/include;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/toolchain/gcc;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/toolchain/cmsis/dsp/GCC;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/boards;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/integration/nrfx;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/util;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/timer;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/log;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/log/src;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/experimental_section_vars;$(SDK_ROOT:../../../../nRF5_SDK_16.0.0_98a08e2)/components/libraries/delay;$(MESH_ROOT:../../../)external/micro-ecc;$(MESH_ROOT:../../../)mesh/core/include;"
      c_preprocessor_definitions="NO_VTOR_CONFIG;USE_APP_CONFIG;CONFIG_APP_IN_CORE;NRF52_SERIES;NRF52833;NRF52833_XXAA;S113;SOFTDEVICE_PRESENT;NRF_SD_BLE_API_VERSION=7;BOARD_PCA10100;CONFIG_GPIO_AS_PINRESET"
      debug_target_connection="J-Link"
      
      debug_additional_load_file="$(SDK_ROOT:../../../../NRF52SDK)/components/softdevice/s113/hex/s113_nrf52_7.0.1_softdevice.hex"
      
      debug_start_from_entry_point_symbol="No"
      linker_output_format="hex"
      linker_printf_width_precision_supported="Yes"
      linker_section_placement_file="$(ProjectDir)/flash_placement.xml"
      linker_section_placement_macros="FLASH_PH_START=0x0;FLASH_PH_SIZE=0x78000;RAM_PH_START=0x20000000;RAM_PH_SIZE=0x1f000;FLASH_START=0x1c000;RAM_START=0x20001f60"
      linker_section_placements_segments="FLASH RX 0x0 0x78000;RAM RWX 0x20000000 0x1f000"
      project_directory=""
      macros="CMSIS_CONFIG_TOOL=$(SDK_ROOT:../../../../NRF52SDK)/external_tools/cmsisconfig/CMSIS_Configuration_Wizard.jar"

1> Linking Project.elf
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `transport_metadata_from_control_tx_params':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:1175: undefined reference to `friend_needs_packet'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `sar_ctx_cancel':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:485: undefined reference to `friend_sar_complete'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `trs_unseg_packet_in':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:1011: undefined reference to `friend_packet_in'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `transport_metadata_from_tx_params':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:1131: undefined reference to `friend_needs_packet'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `sar_rx_ctx_get':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:857: undefined reference to `friend_sar_exists'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `trs_seg_packet_in':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:971: undefined reference to `friend_packet_in'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:989: undefined reference to `friend_sar_complete'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/transport.o: in function `transport_packet_in':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/transport.c:1946: undefined reference to `friend_needs_packet'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/network.o: in function `network_packet_in':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/core/src/network.c:367: undefined reference to `friend_friendship_established'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/mesh_stack.o: in function `mesh_stack_init':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/stack/src/mesh_stack.c:133: undefined reference to `mesh_friend_init'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/mesh_stack.o: in function `mesh_stack_start':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/stack/src/mesh_stack.c:157: undefined reference to `mesh_friend_enable'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/device_state_manager.o: in function `rx_group_address_get':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/mesh/access/src/device_state_manager.c:380: undefined reference to `mesh_opt_friend_get'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/config_server.o: in function `handle_config_low_power_node_polltimeout_get':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/models/foundation/config/src/config_server.c:2874: undefined reference to `friend_remaining_poll_timeout_time_get'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/config_server.o: in function `handle_config_friend_set':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/models/foundation/config/src/config_server.c:942: undefined reference to `mesh_friend_disable'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: /home/User/GIT/Project-Firmware/NRF52Mesh/models/foundation/config/src/config_server.c:953: undefined reference to `mesh_friend_is_enabled'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: /home/User/GIT/Project-Firmware/NRF52Mesh/models/foundation/config/src/config_server.c:946: undefined reference to `mesh_friend_enable'
1> /usr/share/segger_embedded_studio_for_arm_4.40/gcc/arm-none-eabi/bin/ld: build/Project_Debug/obj/config_server.o: in function `handle_config_friend_get':
1> /home/User/GIT/Project-Firmware/NRF52Mesh/models/foundation/config/src/config_server.c:918: undefined reference to `mesh_friend_is_enabled'

Thank you in advance.

Parents Reply Children
No Data
Related