External library compiles, but linking

I'm using Windows 11, WSL2, VSCode extension, NCS v2.

I am trying to build an application against a library which is outside the application folder.  It seems to compile correctly, but linking isn't working.  Can you tell me how to set up my build environment to get this to work?

Here is the folder structure.  The git/app/BikeControlBoard folder is the application.  The git/lib is the library root folder.  There are many sub-directories of the git/lib folder.

git
├── README.md
├── app
│   └── BikeControlBoard
│       ├── CMakeLists.txt
│       ├── app.overlay
│       ├── prj.conf
│       └── src
│           ├── main.cpp
│           └── test.h
├── lib
│   ├── CMakeLists.txt
│   ├── Kconfig
│   ├── app
│   │   ├── App.h
│   │   ├── Application.h
│   │   └── CMakeLists.txt
│   ├── ble
│   │   ├── ...
│   │   └── CMakeLists.txt
│   ├── ...
│   └── zephyr
│       └── module.yml

The git/app/BikeControlBoard/CMakeLists.txt is this:

cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})

add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../../lib build)

project(app)

target_sources(app PRIVATE
    src/main.cpp
)

The git/lib/CMakeLists.txt is this:

add_subdirectory(app)
add_subdirectory(ble)
#...

zephyr_include_directories(.)

file(GLOB lib_sources *.cpp)
if (lib_sources)
  zephyr_library()
  zephyr_library_sources(
    ${lib_sources}
  )
endif()

The git/lib/app/CMakeLists.txt, and all other sub-directories of git/lib, is this:

zephyr_include_directories(.)
file(GLOB lib_sources *.cpp)
if (lib_sources)
  zephyr_library()
  zephyr_library_sources(
    ${lib_sources}
  )
endif()

The full build log is this:

 *  Executing task: nRF Connect: Build [pristine]: BikeControlBoard/build (active) 

Building BikeControlBoard
west build --build-dir /home/doug/git/nRF52/app/BikeControlBoard/build /home/doug/git/nRF52/app/BikeControlBoard --pristine --board adafruit_feather_nrf52840 -- -DNCS_TOOLCHAIN_VERSION:STRING="NONE" -DCONFIG_DEBUG_OPTIMIZATIONS:STRING="y" -DCONFIG_DEBUG_THREAD_INFO:STRING="y" -DDTC_OVERLAY_FILE:STRING="/home/doug/git/nRF52/app/BikeControlBoard/app.overlay" -DCONF_FILE:STRING="/home/doug/git/nRF52/app/BikeControlBoard/prj.conf"

-- west build: generating a build system
Loading Zephyr default modules (Zephyr base).
-- Application: /home/doug/git/nRF52/app/BikeControlBoard
-- Found Python3: /home/doug/ncs/toolchains/v2.0.0/usr/local/bin/python3.8 (found suitable exact version "3.8.2") found components: Interpreter 
-- Cache files will be written to: /home/doug/.cache/zephyr
-- Zephyr version: 3.0.99 (/home/doug/ncs/v2.0.0/zephyr)
-- Found west (found suitable version "0.13.1", minimum required is "0.7.1")
-- Board: adafruit_feather_nrf52840
-- Found host-tools: zephyr 0.14.1 (/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found dtc: /home/doug/ncs/toolchains/v2.0.0/usr/bin/dtc (found suitable version "1.4.7", minimum required is "1.4.6")
-- Found toolchain: zephyr 0.14.1 (/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk)
-- Found BOARD.dts: /home/doug/ncs/v2.0.0/zephyr/boards/arm/adafruit_feather_nrf52840/adafruit_feather_nrf52840.dts
-- Found devicetree overlay: /home/doug/git/nRF52/app/BikeControlBoard/app.overlay
-- Generated zephyr.dts: /home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: /home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: /home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/include/generated/device_extern.h
-- Including generated dts.cmake file: /home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/dts.cmake
Parsing /home/doug/ncs/v2.0.0/zephyr/Kconfig
Loaded configuration '/home/doug/ncs/v2.0.0/zephyr/boards/arm/adafruit_feather_nrf52840/adafruit_feather_nrf52840_defconfig'
Merged configuration '/home/doug/git/nRF52/app/BikeControlBoard/prj.conf'
Merged configuration '/home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/misc/generated/extra_kconfig_options.conf'
Configuration saved to '/home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/.config'
Kconfig header saved to '/home/doug/git/nRF52/app/BikeControlBoard/build/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 10.3.0
-- The CXX compiler identification is GNU 10.3.0
-- The ASM compiler identification is GNU
-- Found assembler: /home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
CMake Warning at /home/doug/ncs/v2.0.0/zephyr/subsys/bluetooth/host/CMakeLists.txt:103 (message):
  CONFIG_BT_FIXED_PASSKEY is enabled

    A fixed passkey is easy to deduce during the pairing procedure, do not use in
    production.


CMake Warning at /home/doug/ncs/v2.0.0/zephyr/subsys/usb/device/CMakeLists.txt:22 (message):
  CONFIG_USB_DEVICE_VID has default value 0x2FE3.

  This value is only for testing and MUST be configured for USB products.


CMake Warning at /home/doug/ncs/v2.0.0/zephyr/CMakeLists.txt:1803 (message):
  __ASSERT() statements are globally ENABLED


-- Configuring done
-- Generating done
-- Build files have been written to: /home/doug/git/nRF52/app/BikeControlBoard/build
-- west build: building application
[1/282] Preparing syscall dependency handling

[2/282] Generating include/generated/version.h
-- Zephyr version: 3.0.99 (/home/doug/ncs/v2.0.0/zephyr), build: v3.0.99-ncs1
[3/282] Generating misc/generated/syscalls_subdirs.trigger
[4/282] Generating misc/generated/syscalls.json, misc/generated/struct_tags.json
[5/282] Generating include/generated/syscall_dispatch.c, include/generated/syscall_list.h
[6/282] Generating include/generated/kobj-types-enum.h, include/generated/otype-to-str.h, include/generated/otype-to-size.h
[7/282] Generating include/generated/driver-validation.h
[8/282] Building C object zephyr/CMakeFiles/offsets.dir/arch/arm/core/offsets/offsets.c.obj
[9/282] Generating include/generated/offsets.h
[10/282] Building CXX object build/peripheral/CMakeFiles/..__..__..__git__nRF52__lib__peripheral.dir/Pin.cpp.obj
[11/282] Building CXX object build/mpsl/CMakeFiles/..__..__..__git__nRF52__lib__mpsl.dir/MpslSession.cpp.obj
[12/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_packaged.c.obj
[13/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32c_sw.c.obj
[14/282] Building CXX object CMakeFiles/app.dir/src/main.cpp.obj
[15/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf.c.obj
[16/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc32_sw.c.obj
[17/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc16_sw.c.obj
[18/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc8_sw.c.obj
[19/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/dec.c.obj
[20/282] Building CXX object build/service/CMakeFiles/..__..__..__git__nRF52__lib__service.dir/Shell.cpp.obj
[21/282] Building CXX object build/mpsl/CMakeFiles/..__..__..__git__nRF52__lib__mpsl.dir/MPSL.cpp.obj
[22/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/notify.c.obj
[23/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/fdtable.c.obj
[24/282] Building CXX object build/ble/CMakeFiles/..__..__..__git__nRF52__lib__ble.dir/BleScanner.cpp.obj
[25/282] Building CXX object build/evm/CMakeFiles/..__..__..__git__nRF52__lib__evm.dir/Evm.cpp.obj
[26/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/crc7_sw.c.obj
[27/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/hex.c.obj
[28/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/printk.c.obj
[29/282] Building CXX object build/ble/CMakeFiles/..__..__..__git__nRF52__lib__ble.dir/Ble.cpp.obj
[30/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/onoff.c.obj
[31/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/rb.c.obj
[32/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/timeutil.c.obj
[33/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/multi_heap.c.obj
[34/282] Building CXX object build/evm/CMakeFiles/..__..__..__git__nRF52__lib__evm.dir/TimedEventHandler.cpp.obj
[35/282] Linking CXX static library app/libapp.a
[36/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap-validate.c.obj
[37/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/cbprintf_complete.c.obj
[38/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/sem.c.obj
[39/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/thread_entry.c.obj
[40/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/bitarray.c.obj
[41/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/ring_buffer.c.obj
[42/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/heap.c.obj
[43/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/assert.c.obj
[44/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/util/fnmatch/fnmatch.c.obj
[45/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/mpsc_pbuf.c.obj
[46/282] Building C object zephyr/CMakeFiles/zephyr.dir/misc/generated/configs.c.obj
[47/282] Building ASM object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/common/soc_nrf_common.S.obj
[48/282] Building C object zephyr/CMakeFiles/zephyr.dir/lib/os/reboot.c.obj
[49/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_list.c.obj
[50/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/debug/thread_info.c.obj
[51/282] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_enabled_instances.c.obj
[52/282] Building CXX object build/service/CMakeFiles/..__..__..__git__nRF52__lib__service.dir/Log.cpp.obj
[53/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_core.c.obj
[54/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_msg.c.obj
[55/282] Building C object zephyr/CMakeFiles/zephyr.dir/soc/arm/nordic_nrf/validate_base_addresses.c.obj
[56/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_output.c.obj
[57/282] Building CXX object build/service/CMakeFiles/..__..__..__git__nRF52__lib__service.dir/Work.cpp.obj
[58/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_msg2.c.obj
[59/282] Building CXX object build/peripheral/CMakeFiles/..__..__..__git__nRF52__lib__peripheral.dir/PAL.cpp.obj
/home/doug/git/nRF52/lib/peripheral/PAL.cpp:15:13: warning: 'void approtect_hw_disable()' defined but not used [-Wunused-function]
   15 | static void approtect_hw_disable(void)
      |             ^~~~~~~~~~~~~~~~~~~~
[60/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_mgmt.c.obj
[61/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/backends/shell_uart.c.obj
[62/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_backend_swo.c.obj
[63/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell.c.obj
[64/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/modules/device_service.c.obj
[65/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/logging/log_cmds.c.obj
[66/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/modules/kernel_service.c.obj
[67/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/modules/devmem_service.c.obj
[68/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_fprintf.c.obj
[69/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_utils.c.obj
[70/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_ops.c.obj
[71/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/cpp/cpp_init_array.c.obj
[72/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/cpp/cpp_init.c.obj
[73/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/cpp/cpp_dtors.c.obj
[74/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_help.c.obj
[75/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_log_backend.c.obj
[76/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_cmds.c.obj
[77/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_history.c.obj
[78/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/shell/shell_wildcard.c.obj
[79/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/cpp/cpp_ctors.c.obj
[80/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/net/lib/utils/addr_utils.c.obj
[81/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/disk/disk_access.c.obj
[82/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/fs/nvs/nvs.c.obj
[83/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/usb/device/usb_device.c.obj
[84/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/usb/device/class/msc.c.obj
[85/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/usb/device/usb_descriptor.c.obj
[86/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map.c.obj
[87/282] Building CXX object build/utl/CMakeFiles/..__..__..__git__nRF52__lib__utl.dir/Timeline.cpp.obj
[88/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/usb/device/usb_transfer.c.obj
[89/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map_default.c.obj
[90/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/storage/flash_map/flash_map_layout.c.obj
[91/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/settings/src/settings_store.c.obj
[92/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/tracing/tracing_none.c.obj
[93/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/settings/src/settings.c.obj
[94/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/settings/src/settings_nvs.c.obj
[95/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/modules/crypto/tinycrypt/lib/source/aes_decrypt.c.obj
[96/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/modules/crypto/tinycrypt/lib/source/utils.c.obj
[97/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/modules/crypto/tinycrypt/lib/source/aes_encrypt.c.obj
[98/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/settings/src/settings_init.c.obj
[99/282] Building C object zephyr/CMakeFiles/zephyr.dir/subsys/settings/src/settings_line.c.obj
[100/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/modules/crypto/tinycrypt/lib/source/cmac_mode.c.obj
[101/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/cpu_idle.S.obj
[102/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_abort_zephyr.c.obj
[103/282] Building C object zephyr/CMakeFiles/zephyr.dir/home/doug/ncs/v2.0.0/nrfxlib/crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_mutex_zephyr.c.obj
[104/282] Building C object zephyr/arch/common/CMakeFiles/isr_tables.dir/isr_tables.c.obj
[105/282] Building C object zephyr/arch/common/CMakeFiles/arch__common.dir/sw_isr_common.c.obj
[106/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/fatal.c.obj
[107/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi_on_reset.S.obj
[108/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/irq_manage.c.obj
[109/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/nmi.c.obj
[110/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/prep_c.c.obj
[111/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap.c.obj
[112/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/thread.c.obj
[113/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/swap_helper.S.obj
[114/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/isr_wrapper.S.obj
[115/282] Linking C static library zephyr/arch/common/libisr_tables.a
[116/282] Building C object zephyr/arch/arch/arm/core/aarch32/CMakeFiles/arch__arm__core__aarch32.dir/__aeabi_atexit.c.obj
[117/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/exc_exit.S.obj
[118/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault_s.S.obj
[119/282] Generating linker_zephyr_pre0.cmd
[120/282] Generating linker_zephyr_pre1.cmd
[121/282] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fault.c.obj
[122/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/vector_table.S.obj
[123/282] Building ASM object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/reset.S.obj
[124/282] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/scb.c.obj
[125/282] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/thread_abort.c.obj
[126/282] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/fpu.c.obj
[127/282] Building C object zephyr/arch/arch/arm/core/aarch32/cortex_m/CMakeFiles/arch__arm__core__aarch32__cortex_m.dir/irq_init.c.obj
[128/282] Linking C static library zephyr/libzephyr.a
[129/282] Linking C static library zephyr/arch/arch/arm/core/aarch32/libarch__arm__core__aarch32.a
[130/282] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_core_mpu.c.obj
[131/282] Building C object zephyr/arch/arch/arm/core/aarch32/mpu/CMakeFiles/arch__arm__core__aarch32__mpu.dir/arm_mpu.c.obj
[132/282] Building C object zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj
[133/282] Linking C static library zephyr/arch/common/libarch__common.a
[134/282] Building C object zephyr/lib/libc/newlib/CMakeFiles/lib__libc__newlib.dir/libc-hooks.c.obj
[135/282] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/pthread_common.c.obj
[136/282] Building C object zephyr/lib/posix/CMakeFiles/lib__posix.dir/nanosleep.c.obj
[137/282] Building C object zephyr/soc/arm/nordic_nrf/nrf52/CMakeFiles/soc__arm__nordic_nrf__nrf52.dir/soc.c.obj
[138/282] Building C object zephyr/subsys/bluetooth/common/CMakeFiles/subsys__bluetooth__common.dir/dummy.c.obj
[139/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/uuid.c.obj
[140/282] Building C object zephyr/drivers/console/CMakeFiles/drivers__console.dir/uart_console.c.obj
[141/282] Building C object zephyr/subsys/bluetooth/common/CMakeFiles/subsys__bluetooth__common.dir/log.c.obj
[142/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/addr.c.obj
[143/282] Building C object zephyr/soc/arm/common/cortex_m/CMakeFiles/soc__arm__common__cortex_m.dir/arm_mpu_regions.c.obj
[144/282] Building C object zephyr/subsys/bluetooth/common/CMakeFiles/subsys__bluetooth__common.dir/rpa.c.obj
[145/282] Linking C static library zephyr/arch/arch/arm/core/aarch32/mpu/libarch__arm__core__aarch32__mpu.a
[146/282] Linking C static library zephyr/arch/arch/arm/core/aarch32/cortex_m/libarch__arm__core__aarch32__cortex_m.a
[147/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/settings.c.obj
[148/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/hci_core.c.obj
[149/282] Linking C static library zephyr/lib/libc/newlib/liblib__libc__newlib.a
[150/282] Linking C static library zephyr/soc/arm/nordic_nrf/nrf52/libsoc__arm__nordic_nrf__nrf52.a
[151/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/buf.c.obj
[152/282] Linking C static library zephyr/lib/posix/liblib__posix.a
[153/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/hci_common.c.obj
[154/282] Linking C static library zephyr/drivers/console/libdrivers__console.a
[155/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/id.c.obj
[156/282] Linking C static library zephyr/soc/arm/common/cortex_m/libsoc__arm__common__cortex_m.a
[157/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/adv.c.obj
[158/282] Linking C static library zephyr/subsys/bluetooth/common/libsubsys__bluetooth__common.a
[159/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/scan.c.obj
[160/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/conn.c.obj
[161/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/l2cap.c.obj
[162/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/att.c.obj
[163/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/ecc.c.obj
[164/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/gatt.c.obj
[165/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/smp.c.obj
[166/282] Building C object zephyr/subsys/bluetooth/host/CMakeFiles/subsys__bluetooth__host.dir/keys.c.obj
[167/282] Building C object zephyr/subsys/fs/CMakeFiles/subsys__fs.dir/fat_fs.c.obj
[168/282] Building C object zephyr/subsys/fs/CMakeFiles/subsys__fs.dir/fs.c.obj
[169/282] Building C object zephyr/subsys/fs/CMakeFiles/subsys__fs.dir/fs_impl.c.obj
[170/282] Building C object zephyr/subsys/net/CMakeFiles/subsys__net.dir/buf.c.obj
[171/282] Building C object zephyr/subsys/random/CMakeFiles/subsys__random.dir/rand32_entropy_device.c.obj
[172/282] Building C object zephyr/drivers/disk/CMakeFiles/drivers__disk.dir/ramdisk.c.obj
[173/282] Building C object zephyr/drivers/usb/device/CMakeFiles/drivers__usb__device.dir/usb_dc_nrfx.c.obj
[174/282] Building C object zephyr/drivers/clock_control/CMakeFiles/drivers__clock_control.dir/clock_control_nrf.c.obj
[175/282] Building C object zephyr/drivers/gpio/CMakeFiles/drivers__gpio.dir/gpio_nrfx.c.obj
[176/282] Building C object zephyr/drivers/pwm/CMakeFiles/drivers__pwm.dir/pwm_nrfx.c.obj
[177/282] Building C object zephyr/drivers/pwm/CMakeFiles/drivers__pwm.dir/pwm_shell.c.obj
[178/282] Building C object zephyr/drivers/hwinfo/CMakeFiles/drivers__hwinfo.dir/hwinfo_weak_impl.c.obj
[179/282] Building C object zephyr/drivers/hwinfo/CMakeFiles/drivers__hwinfo.dir/hwinfo_shell.c.obj
[180/282] Linking C static library zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a
[181/282] Building C object zephyr/drivers/hwinfo/CMakeFiles/drivers__hwinfo.dir/hwinfo_nrf.c.obj
[182/282] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/soc_flash_nrf.c.obj
[183/282] Linking C static library zephyr/subsys/random/libsubsys__random.a
[184/282] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/flash_page_layout.c.obj
[185/282] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uart.c.obj
[186/282] Building C object zephyr/drivers/flash/CMakeFiles/drivers__flash.dir/flash_shell.c.obj
[187/282] Building C object zephyr/drivers/serial/CMakeFiles/drivers__serial.dir/uart_nrfx_uarte.c.obj
[188/282] Building C object zephyr/drivers/entropy/CMakeFiles/drivers__entropy.dir/entropy_nrf5.c.obj
[189/282] Linking C static library zephyr/drivers/usb/device/libdrivers__usb__device.a
[190/282] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/sys_clock_init.c.obj
[191/282] Linking C static library zephyr/subsys/net/libsubsys__net.a
[192/282] Linking C static library zephyr/drivers/disk/libdrivers__disk.a
[193/282] Building C object zephyr/drivers/timer/CMakeFiles/drivers__timer.dir/nrf_rtc_timer.c.obj
[194/282] Linking C static library zephyr/subsys/fs/libsubsys__fs.a
[195/282] Linking C static library zephyr/drivers/pwm/libdrivers__pwm.a
[196/282] Building C object modules/nrf/lib/multithreading_lock/CMakeFiles/..__nrf__lib__multithreading_lock.dir/multithreading_lock.c.obj
[197/282] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/pinctrl_nrf.c.obj
[198/282] Linking C static library zephyr/drivers/hwinfo/libdrivers__hwinfo.a
[199/282] Building C object zephyr/drivers/entropy/CMakeFiles/drivers__entropy.dir/home/doug/ncs/v2.0.0/nrf/drivers/entropy/entropy_cc3xx.c.obj
[200/282] Linking C static library zephyr/drivers/flash/libdrivers__flash.a
[201/282] Linking C static library zephyr/drivers/clock_control/libdrivers__clock_control.a
[202/282] Linking C static library zephyr/drivers/gpio/libdrivers__gpio.a
[203/282] Linking C static library zephyr/drivers/serial/libdrivers__serial.a
[204/282] Building C object zephyr/drivers/pinctrl/CMakeFiles/drivers__pinctrl.dir/common.c.obj
[205/282] Building C object modules/nrf/subsys/bluetooth/controller/CMakeFiles/..__nrf__subsys__bluetooth__controller.dir/crypto.c.obj
[206/282] Building C object modules/nrf/subsys/bluetooth/controller/CMakeFiles/..__nrf__subsys__bluetooth__controller.dir/hci_driver.c.obj
[207/282] Linking C static library zephyr/drivers/timer/libdrivers__timer.a
[208/282] Building C object modules/nrf/subsys/bluetooth/controller/CMakeFiles/..__nrf__subsys__bluetooth__controller.dir/hci_internal.c.obj
[209/282] Building C object modules/nrf/subsys/esb/CMakeFiles/..__nrf__subsys__esb.dir/esb.c.obj
[210/282] Building C object modules/nrf/subsys/bluetooth/controller/CMakeFiles/..__nrf__subsys__bluetooth__controller.dir/ecdh.c.obj
[211/282] Linking C static library modules/nrf/lib/multithreading_lock/lib..__nrf__lib__multithreading_lock.a
[212/282] Building C object modules/nrf/subsys/mpsl/init/CMakeFiles/..__nrf__subsys__mpsl__init.dir/mpsl_init.c.obj
[213/282] Linking C static library zephyr/drivers/entropy/libdrivers__entropy.a
[214/282] Building C object modules/nrf/drivers/mpsl/clock_control/CMakeFiles/..__nrf__drivers__mpsl__clock_control.dir/nrfx_clock_mpsl.c.obj
[215/282] Building C object modules/fatfs/CMakeFiles/..__modules__fs__fatfs.dir/ff.c.obj
[216/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/mdk/system_nrf52840.c.obj
[217/282] Building C object modules/nrf/drivers/mpsl/flash_sync/CMakeFiles/..__nrf__drivers__mpsl__flash_sync.dir/flash_sync_mpsl.c.obj
[218/282] Building C object modules/nrf/drivers/hw_cc310/CMakeFiles/..__nrf__drivers__hw_cc310.dir/hw_cc310.c.obj
[219/282] Linking C static library zephyr/drivers/pinctrl/libdrivers__pinctrl.a
[220/282] Building C object modules/fatfs/CMakeFiles/..__modules__fs__fatfs.dir/zfs_diskio.c.obj
[221/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/nrfx_glue.c.obj
[222/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/helpers/nrfx_flag32_allocator.c.obj
[223/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_gpiote.c.obj
[224/282] Linking C static library modules/nrf/drivers/mpsl/clock_control/lib..__nrf__drivers__mpsl__clock_control.a
[225/282] Linking C static library modules/nrf/subsys/esb/lib..__nrf__subsys__esb.a
[226/282] Linking C static library modules/nrf/subsys/bluetooth/controller/lib..__nrf__subsys__bluetooth__controller.a
[227/282] Linking C static library modules/nrf/subsys/mpsl/init/lib..__nrf__subsys__mpsl__init.a
[228/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_nvmc.c.obj
[229/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_power.c.obj
[230/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_ppi.c.obj
[231/282] Linking C static library modules/nrf/drivers/mpsl/flash_sync/lib..__nrf__drivers__mpsl__flash_sync.a
[232/282] Linking C static library modules/nrf/drivers/hw_cc310/lib..__nrf__drivers__hw_cc310.a
[233/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_pwm.c.obj
[234/282] Linking C static library modules/fatfs/lib..__modules__fs__fatfs.a
[235/282] Building C object modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/home/doug/ncs/v2.0.0/modules/hal/nordic/nrfx/drivers/src/nrfx_usbd.c.obj
[236/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/main_weak.c.obj
[237/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/device.c.obj
[238/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/banner.c.obj
[239/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/errno.c.obj
[240/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/fatal.c.obj
[241/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/init.c.obj
[242/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/kheap.c.obj
[243/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mem_slab.c.obj
[244/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/version.c.obj
[245/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/thread.c.obj
[246/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mailbox.c.obj
[247/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/idle.c.obj
[248/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/msg_q.c.obj
[249/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mutex.c.obj
[250/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/pipes.c.obj
[251/282] Linking C static library modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a
[252/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/queue.c.obj
[253/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sem.c.obj
[254/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/stack.c.obj
[255/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/system_work_q.c.obj
[256/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/work.c.obj
[257/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/sched.c.obj
[258/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/condvar.c.obj
[259/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/xip.c.obj
[260/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timer.c.obj
[261/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/poll.c.obj
[262/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/usage.c.obj
[263/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/timeout.c.obj
[264/282] Building C object zephyr/kernel/CMakeFiles/kernel.dir/mempool.c.obj
[265/282] Linking CXX static library build/evm/lib..__..__..__git__nRF52__lib__evm.a
[266/282] Linking CXX static library build/peripheral/lib..__..__..__git__nRF52__lib__peripheral.a
[267/282] Linking CXX static library build/utl/lib..__..__..__git__nRF52__lib__utl.a
[268/282] Linking CXX static library build/ble/lib..__..__..__git__nRF52__lib__ble.a
[269/282] Linking CXX static library build/service/lib..__..__..__git__nRF52__lib__service.a
[270/282] Linking CXX static library build/mpsl/lib..__..__..__git__nRF52__lib__mpsl.a
[271/282] Linking C static library zephyr/kernel/libkernel.a
[272/282] Linking CXX executable zephyr/zephyr_pre0.elf
FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map 
: && ccache /home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-g++   zephyr/CMakeFiles/zephyr_pre0.dir/misc/empty_file.c.obj -o zephyr/zephyr_pre0.elf  -fuse-ld=bfd  -Wl,-T  zephyr/linker_zephyr_pre0.cmd  -Wl,-Map=/home/doug/git/nRF52/app/BikeControlBoard/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/newlib/liblib__libc__newlib.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/subsys/bluetooth/common/libsubsys__bluetooth__common.a  zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a  zephyr/subsys/fs/libsubsys__fs.a  zephyr/subsys/net/libsubsys__net.a  zephyr/subsys/random/libsubsys__random.a  zephyr/drivers/disk/libdrivers__disk.a  zephyr/drivers/usb/device/libdrivers__usb__device.a  zephyr/drivers/clock_control/libdrivers__clock_control.a  zephyr/drivers/console/libdrivers__console.a  zephyr/drivers/gpio/libdrivers__gpio.a  zephyr/drivers/pwm/libdrivers__pwm.a  zephyr/drivers/hwinfo/libdrivers__hwinfo.a  zephyr/drivers/flash/libdrivers__flash.a  zephyr/drivers/serial/libdrivers__serial.a  zephyr/drivers/entropy/libdrivers__entropy.a  zephyr/drivers/timer/libdrivers__timer.a  zephyr/drivers/pinctrl/libdrivers__pinctrl.a  modules/nrf/lib/multithreading_lock/lib..__nrf__lib__multithreading_lock.a  modules/nrf/subsys/bluetooth/controller/lib..__nrf__subsys__bluetooth__controller.a  modules/nrf/subsys/esb/lib..__nrf__subsys__esb.a  modules/nrf/subsys/mpsl/init/lib..__nrf__subsys__mpsl__init.a  modules/nrf/drivers/mpsl/clock_control/lib..__nrf__drivers__mpsl__clock_control.a  modules/nrf/drivers/mpsl/flash_sync/lib..__nrf__drivers__mpsl__flash_sync.a  modules/nrf/drivers/hw_cc310/lib..__nrf__drivers__hw_cc310.a  modules/fatfs/lib..__modules__fs__fatfs.a  modules/hal_nordic/nrfx/libmodules__hal_nordic__nrfx.a  -Wl,--no-whole-archive  zephyr/kernel/libkernel.a  zephyr/CMakeFiles/offsets.dir/./arch/arm/core/offsets/offsets.c.obj  -L"/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/thumb/v7e-m/nofp"  -L/home/doug/git/nRF52/app/BikeControlBoard/build/zephyr  -lgcc  zephyr/arch/common/libisr_tables.a  /home/doug/ncs/v2.0.0/nrfxlib/crypto/nrf_oberon/lib/cortex-m4/soft-float/liboberon_3.0.11.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  -lstdc++  -lm  -Wl,-lc  -L"/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi"/lib/thumb/v7e-m/nofp  -u_printf_float  -Wl,-lgcc  -lc  -specs=nano.specs  /home/doug/ncs/v2.0.0/nrfxlib/mpsl/lib/cortex-m4/soft-float/libmpsl.a  /home/doug/ncs/v2.0.0/nrfxlib/crypto/nrf_cc310_platform/lib/cortex-m4/soft-float/no-interrupts/libnrf_cc310_platform_0.9.14.a  -lc  /home/doug/ncs/v2.0.0/nrfxlib/softdevice_controller/lib/cortex-m4/soft-float/libsoftdevice_controller_multirole.a && cd /home/doug/git/nRF52/app/BikeControlBoard/build/zephyr && /home/doug/ncs/toolchains/v2.0.0/usr/local/lib/python3.8/site-packages/cmake/data/bin/cmake -E echo
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Start()::{lambda()#3}::operator()() const':
/home/doug/git/nRF52/lib/esb/Esb.h:306: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda()#4}::operator()() const':
/home/doug/git/nRF52/lib/esb/Esb.h:1055: undefined reference to `TimedEventHandler::DeRegisterForTimedEvent()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1050: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda()#6}::operator()() const':
/home/doug/git/nRF52/lib/esb/Esb.h:1092: undefined reference to `Timeline::ReportNow(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `__static_initialization_and_destruction_0(int, int)':
/home/doug/git/nRF52/lib/utl/Timeline.h:61: undefined reference to `Timeline::Timeline(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `__static_initialization_and_destruction_0(int, int)':
/home/doug/git/nRF52/lib/mpsl/MPSL.h:121: undefined reference to `Timeline::Timeline(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#12}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1129: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Stop()':
/home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `TimedEventHandler::~TimedEventHandler()':
/home/doug/git/nRF52/lib/evm/TimedEventHandler.h:41: undefined reference to `TimedEventHandler::DeRegisterForTimedEvent()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/evm/TimedEventHandler.h:41: undefined reference to `TimedEventHandler::DeRegisterForTimedEvent()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::~Esb()':
/home/doug/git/nRF52/lib/esb/Esb.h:68: undefined reference to `MpslSession::~MpslSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `RgbLedEffectsController::StopSampler()':
/home/doug/git/nRF52/lib/led/RgbLedEffectsController.h:384: undefined reference to `TimedEventHandler::DeRegisterForTimedEvent()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::OnMpslTimeslotEnd()':
/home/doug/git/nRF52/lib/esb/Esb.h:463: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StopModeRx()':
/home/doug/git/nRF52/lib/esb/Esb.h:493: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StopModeTx()':
/home/doug/git/nRF52/lib/esb/Esb.h:505: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [2], int&>(char const (&) [2], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#7}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1098: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::EnableTimeslotExtensions()':
/home/doug/git/nRF52/lib/esb/Esb.h:278: undefined reference to `MpslSession::EnableTimeslotExtensions()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#7}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1103: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::DisableTimeslotExtensions()':
/home/doug/git/nRF52/lib/esb/Esb.h:283: undefined reference to `MpslSession::DisableTimeslotExtensions()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [13], char const*&>(char const (&) [13], char const*&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [13], char const*>(char const (&) [13], char const*&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [13], unsigned short&>(char const (&) [13], unsigned short&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned short)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [13], unsigned short&>(char const (&) [13], unsigned short&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [13], unsigned char&, char const (&) [2]>(char const (&) [13], unsigned char&, char const (&) [2])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned char)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [13], unsigned char&, char const (&) [2]>(char const (&) [13], unsigned char&, char const (&) [2])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >>(char const (&) [13], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [13], unsigned char&>(char const (&) [13], unsigned char&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned char)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [13], unsigned char&>(char const (&) [13], unsigned char&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [17], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [17], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [17], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >>(char const (&) [17], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [26], int&>(char const (&) [26], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [26], int&>(char const (&) [26], int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [37], int&>(char const (&) [37], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [37], int&>(char const (&) [37], int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [34], int&>(char const (&) [34], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [34], int&>(char const (&) [34], int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [22], int&>(char const (&) [22], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [22], int&>(char const (&) [22], int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#13}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1136: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::LiveModeChangeFromTxToRx()':
/home/doug/git/nRF52/lib/esb/Esb.h:510: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StopModeTx()':
/home/doug/git/nRF52/lib/esb/Esb.h:505: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StartModeRx()':
/home/doug/git/nRF52/lib/esb/Esb.h:486: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#13}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1141: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::LiveModeChangeFromRxToTx()':
/home/doug/git/nRF52/lib/esb/Esb.h:519: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StopModeRx()':
/home/doug/git/nRF52/lib/esb/Esb.h:493: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StartModeTx()':
/home/doug/git/nRF52/lib/esb/Esb.h:499: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Send(Esb::Message&)':
/home/doug/git/nRF52/lib/esb/Esb.h:345: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:377: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj):/home/doug/git/nRF52/lib/esb/Esb.h:356: more undefined references to `Timeline::Event(char const*)' follow
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [4], bool&, char const (&) [2]>(char const (&) [4], bool&, char const (&) [2])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [4], bool&, char const (&) [2]>(char const (&) [4], bool&, char const (&) [2])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [9]>(char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [9])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [9]>(char const (&) [14], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const (&) [9])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [11], unsigned int&>(char const (&) [11], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [11], unsigned int&>(char const (&) [11], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [5], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [5], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [5], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >>(char const (&) [5], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [16], char const*&>(char const (&) [16], char const*&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [16], char const*>(char const (&) [16], char const*&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [14], char const*&>(char const (&) [14], char const*&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [14], char const*>(char const (&) [14], char const*&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [12], unsigned short&>(char const (&) [12], unsigned short&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned short)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [12], unsigned short&>(char const (&) [12], unsigned short&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [9], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [9], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [9], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >>(char const (&) [9], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [10], unsigned char&>(char const (&) [10], unsigned char&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned char)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [5], unsigned char&, char const (&) [10], unsigned char&>(char const (&) [5], unsigned char&, char const (&) [10], unsigned char&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned char)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [5], unsigned char, char const (&) [10], unsigned char>(char const (&) [5], unsigned char&&, char const (&) [10], unsigned char&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [10], unsigned char&>(char const (&) [10], unsigned char&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [15], unsigned int&>(char const (&) [15], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [15], unsigned int&>(char const (&) [15], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [10], unsigned int&>(char const (&) [10], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [10], unsigned int&>(char const (&) [10], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#20}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1194: undefined reference to `PlatformAbstractionLayer::Micros()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1196: undefined reference to `TimedEventHandler::RegisterForTimedEvent(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [23], unsigned int&>(char const (&) [23], unsigned int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [23], unsigned int>(char const (&) [23], unsigned int&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [10], int&>(char const (&) [10], int&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [10], int>(char const (&) [10], int&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda()#3}::operator()() const':
/home/doug/git/nRF52/lib/esb/Esb.h:1041: undefined reference to `TimedEventHandler::RegisterForTimedEvent(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Start()':
/home/doug/git/nRF52/lib/esb/Esb.h:288: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:292: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:302: undefined reference to `MpslSession::SetCbOnStart(std::function<void ()>)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:303: undefined reference to `MpslSession::SetCbOnEnd(std::function<void ()>)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:306: undefined reference to `MpslSession::SetCbOnNoMoreComing(std::function<void ()>)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:308: undefined reference to `MpslSession::OpenSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:315: undefined reference to `MpslSession::RequestTimeslots(unsigned int, unsigned int, bool)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)#11}::operator()(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1124: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Stop()':
/home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Report()':
/home/doug/git/nRF52/lib/esb/Esb.h:408: undefined reference to `Timeline::Report(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::EsbIsrEventHandler(esb_evt const*)':
/home/doug/git/nRF52/lib/esb/Esb.h:813: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:820: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:827: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:875: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::OnEsbRx(esb_payload*)':
/home/doug/git/nRF52/lib/esb/Esb.h:533: undefined reference to `Evm::QueueWork(char const*, std::function<void ()>&&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::EsbIsrEventHandler(esb_evt const*)':
/home/doug/git/nRF52/lib/esb/Esb.h:858: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::OnMpslTimeslotStart()':
/home/doug/git/nRF52/lib/esb/Esb.h:439: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StartModeRx()':
/home/doug/git/nRF52/lib/esb/Esb.h:486: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::StartModeTx()':
/home/doug/git/nRF52/lib/esb/Esb.h:499: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<esb_payload>(esb_payload*)':
/home/doug/git/nRF52/lib/service/Log.h:119: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [6], esb_payload*&>(char const (&) [6], esb_payload*&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [6], esb_payload*>(char const (&) [6], esb_payload*&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [6], esb_payload*&>(char const (&) [6], esb_payload*&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<unsigned char [252]>(unsigned char (*) [252])':
/home/doug/git/nRF52/lib/service/Log.h:119: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [6], unsigned char (*&) [252]>(char const (&) [6], unsigned char (*&) [252])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [6], unsigned char (*) [252]>(char const (&) [6], unsigned char (*&&) [252])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<unsigned char>(unsigned char*)':
/home/doug/git/nRF52/lib/service/Log.h:119: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [6], unsigned char (&) [252]>(char const (&) [6], unsigned char (&) [252])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [6], unsigned char (&) [252]>(char const (&) [6], unsigned char (&) [252])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Stop()':
/home/doug/git/nRF52/lib/esb/Esb.h:323: undefined reference to `Timeline::Event(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:329: undefined reference to `MpslSession::CloseSession()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Application::Run()':
/home/doug/git/nRF52/lib/app/Application.h:67: undefined reference to `Timeline::EnableCcGlobal()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:68: undefined reference to `Timeline::Global()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:68: undefined reference to `Timeline::SetMaxEvents(unsigned short)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:70: undefined reference to `UartSelect(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:71: undefined reference to `UartOut(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:72: undefined reference to `UartSelect(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:73: undefined reference to `UartOut(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:75: undefined reference to `Log(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/Application.h:78: undefined reference to `PlatformAbstractionLayer::Delay(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::SetCbOnAssert(std::function<void ()>)':
/home/doug/git/nRF52/lib/esb/Esb.h:217: undefined reference to `MpslSession::SetCbOnAssert(std::function<void ()>)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()':
/home/doug/git/nRF52/lib/esb/Esb.h:1095: undefined reference to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1108: undefined reference to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1113: undefined reference to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1118: undefined reference to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1123: undefined reference to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj):/home/doug/git/nRF52/lib/esb/Esb.h:1128: more undefined references to `Shell::AddCommand(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::function<void (std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >)>, Shell::CmdOptions)' follow
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Esb()':
/home/doug/git/nRF52/lib/esb/Esb.h:166: undefined reference to `Timeline::Timeline(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:167: undefined reference to `MpslSession::EnableTimeslotExtensions()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()':
/home/doug/git/nRF52/lib/esb/Esb.h:950: undefined reference to `vtable for MpslSession'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::App()':
/home/doug/git/nRF52/lib/app/App.h:27: undefined reference to `LogNL(unsigned char)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetThreadPriority()':
/home/doug/git/nRF52/lib/app/App.h:63: undefined reference to `PlatformAbstractionLayer::SetThreadPriority(int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupPin()':
/home/doug/git/nRF52/lib/app/App.h:68: undefined reference to `Pin::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupPAL()':
/home/doug/git/nRF52/lib/app/App.h:73: undefined reference to `PlatformAbstractionLayer::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupLog()':
/home/doug/git/nRF52/lib/app/App.h:78: undefined reference to `LogInit()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupTimeline()':
/home/doug/git/nRF52/lib/app/App.h:83: undefined reference to `Timeline::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/App.h:84: undefined reference to `Timeline::Global()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/app/App.h:84: undefined reference to `Timeline::SetMaxEvents(unsigned short)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupEvm()':
/home/doug/git/nRF52/lib/app/App.h:89: undefined reference to `Evm::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupWork()':
/home/doug/git/nRF52/lib/app/App.h:94: undefined reference to `Work::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupBle()':
/home/doug/git/nRF52/lib/app/App.h:99: undefined reference to `Ble::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupMPSL()':
/home/doug/git/nRF52/lib/app/App.h:104: undefined reference to `MPSL::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `App::SetupMpslSession()':
/home/doug/git/nRF52/lib/app/App.h:109: undefined reference to `MpslSession::Init()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Application::Application()':
/home/doug/git/nRF52/lib/app/Application.h:60: undefined reference to `Ble::CreateObserver()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Esb()':
/home/doug/git/nRF52/lib/esb/Esb.h:166: undefined reference to `Timeline::Timeline(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:167: undefined reference to `MpslSession::EnableTimeslotExtensions()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Application::Application()':
/home/doug/git/nRF52/lib/app/Application.h:63: undefined reference to `vtable for MpslSession'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4]>(char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4]>(char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [8], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4]>(char const (&) [8], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [4])':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [8], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [4]>(char const (&) [8], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const (&) [7], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const (&) [16], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const (&) [4])':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda()#2}::operator()() const':
/home/doug/git/nRF52/lib/esb/Esb.h:995: undefined reference to `TimedEventHandler::RegisterForTimedEvent(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:999: undefined reference to `PlatformAbstractionLayer::Micros()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1021: undefined reference to `TimedEventHandler::RegisterForTimedEvent(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1011: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1016: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:134: undefined reference to `LogNNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void LogNNL<char const (&) [8], unsigned int&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(char const (&) [8], unsigned int&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
/home/doug/git/nRF52/lib/service/Log.h:132: undefined reference to `LogNNL(char const*)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/service/Log.h:133: undefined reference to `LogNNL(unsigned int)'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `void Log<char const (&) [8], unsigned int, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(char const (&) [8], unsigned int&&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&, char const (&) [3], std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)':
/home/doug/git/nRF52/lib/service/Log.h:141: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: app/libapp.a(main.cpp.obj): in function `Esb::Init()::{lambda(Esb::Message)#5}::operator()(Esb::Message) const':
/home/doug/git/nRF52/lib/esb/Esb.h:1072: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: /home/doug/git/nRF52/lib/esb/Esb.h:1075: undefined reference to `LogNL()'
/home/doug/ncs/toolchains/v2.0.0/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/10.3.0/../../../../arm-zephyr-eabi/bin/ld.bfd: modules/nrf/subsys/mpsl/init/lib..__nrf__subsys__mpsl__init.a(mpsl_init.c.obj): in function `m_assert_handler':
/home/doug/ncs/v2.0.0/nrf/subsys/mpsl/init/mpsl_init.c:116: undefined reference to `mpsl_assert_handle'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
FATAL ERROR: command exited with status 1: /home/doug/ncs/toolchains/v2.0.0/usr/local/bin/cmake --build /home/doug/git/nRF52/app/BikeControlBoard/build

 *  The terminal process terminated with exit code: 1. 
 *  Terminal will be reused by tasks, press any key to close it. 

I'm unclear on whether I should be using the add_subdirectory() cmake command in the application, or trying to call the library an ZEPHYR_EXTRA_MODULES.

The requirement for the library is:

  • The library is a mix of .h and .cpp files in each sub-folder
  • Any .h or .cpp file may try to include another .h file from that folder, or another sub-folder of lib
  • The application code may try to include any .h file from any sub-folder of lib
  • The whole thing has to compile at once and link together

Thanks.

Parents Reply Children
  • Hi can you please find someone to help with this?

    I am trying to integrate unit tests into this application as well and I'm completely lost as to what I should be doing to make that work.

    https://docs.zephyrproject.org/3.2.0/develop/test/ztest.html

    https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/subsys/testsuite/integration

    The documentation appears to be expecting me to place files into the zephry rtos directory structure, which is only one of multiple supported configurations, and not the one I'm trying to use.

    What is the right way for me to run unit tests given the directory structure I laid out previously?

    Please help me with this it is incredibly challenging making progress when the build environment is not working as needed.

    Thanks.

  • Hi Douglas,

    My colleague and I have been trying to recreate your setup and produce a minimal working example matching the configuration you say is required. But we've also been hitting issues. At this point they're about the same as yours - the source compiles but includes are not working correctly.

    I'm still waiting for more advice on this. We're short on some necessary CMake experience here, since users don't usually have strict requirements for project structure.

    Meanwhile, the way things are now, between having the exact Zephyr topology and library directory structure you want, and having a solution by this week, I don't think you can have all three.

    Is it absolutely necessary for you to have this directory structure?

    What is your configuration, do you have a freestanding application?

    Are you using NCS v.2.0.0 or something newer?

    It will be easier to make progress if your configuration could match one of the examples out there. Since you're introducing tests as well, I wanted to recommend you the https://github.com/nrfconnect/ncs-example-application. It uses the Zephyr T2 topology, which unfortunately isn't the default, and it demonstrates multiple Zephyr features so it's also not a minimal example.

    The ztest framework has received some updates recently so if you are not running a recent NCS version, you might have to look at older versions of the example: https://github.com/zephyrproject-rtos/example-application.

    You could also try to consider all your libraries as a module, and follow this third-party example: Zephyr Module example and template

    I'll keep trying to put together a working minimal example.

    I know the complexity here is far from ideal, apologies. The CMake wrapper functions probably add to the confusion here. Using more idiomatic CMake would help and is an issue that has been discussed: https://github.com/zephyrproject-rtos/zephyr/issues/8439

    Best regards,

    Raoul

  • Thank you Raoul, I will read through these resources in detail.

    I will also re-examine if/how I can re-arrange my project structure to fit something that fits better with your examples.

    In reality I have no CMake experience myself, so it's also been challenging for me, especially when making progress on the software itself is the priority.

    Much appreciated that you're working toward figuring this out.  Thank you.

  • Hi, here are some thoughts

    the source compiles but includes are not working correctly

    Technically I was saying the build/includes work, but the linking doesn't.

    Is it absolutely necessary for you to have this directory structure?

    What is your configuration, do you have a freestanding application?

    It is not necessary to have this structure.  Let me explain the constraints I want.

    I want all of my code to live outside of the zephyr/ncs tree, applications and libraries both.

    I want to have multiple freestanding applications.
    I want each application to have a main build.
    I want each application to have tests run.
    I want each application to have multiple board configurations/overlays.

    I want to have a multi-library folder (lib) which lives outside the zephyr/ncs tree, and outside any application tree.
    I want lib to build against Zephyr.
    I want each application to be able to build against the code in this library.
    This library will, say, include functionality for BLE and USB.
    If application 1 enables BLE, but application 2 doesn't, I still want both applications to be able to build independently of one another without changing anything in lib.

    The libraries folder (lib) should include many sub-directories, and sub-directories within those (organizing code structure).
    eg ./lib; which contains ./lib/A and ./lib/B
    Any file within the library structure should be able to include any .h file within the whole library folder.
    eg ./lib/A/code.cpp includes libB.h which lives at ./lib/B

    Any application should be able to include any .h file within the whole library folder.

    Are you using NCS v.2.0.0 or something newer?

    I have been using NCS v2.0.0, but downloaded v2.3.0 just now, but tried using it yet.  Is there functionality I should be looking for?

    I will look at the examples you have linked to.  Please read over my requirements and let me know what can be done.

    Thanks!

  • I have spent HOURS and HOURS on this this weekend and am getting nowhere.

    I have last simply tried walking step-by-step through your linked-to https://github.com/nrfconnect/ncs-example-application.

    I have no idea what I'm doing wrong, but it simply doesn't work even copy/paste.

    To start, I installed the nRF Connect Desktop, installed nRF Connect SDK v2.3.0 in c:\ncs\.  No idea if that's what I'm supposed to do, the example just says go look at the getting started page, which I do, and getting started says to do that, so I did that.

    (from a git bash shell)

    west init -m github.com/.../ncs-example-application --mr v2.3.0 my-workspace

    cd my-workspace

    west update

    // ok so far

    (now copy and paste directly from the example, except use custom_plank instead of $BOARD)

    west build -b custom_plank app

    ERROR: source directory app does not exist
    FATAL ERROR: refusing to proceed without --force due to above error
    

    No.

    What if "app" meant "ncs-example-application?"

    west build -b custom_plank ncs-example-application/

    -- west build: generating a build system
    CMake Warning (dev) in CMakeLists.txt:
      No project() command is present.  The top-level CMakeLists.txt file must
      contain a literal, direct call to the project() command.  Add a line of
      code such as
    
        project(ProjectName)
    
      near the top of the file, but after cmake_minimum_required().
    
      CMake is pretending there is a "project(Project)" command on the first
      line.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Warning (dev) in CMakeLists.txt:
      cmake_minimum_required() should be called prior to this top-level project()
      call.  Please see the cmake-commands(7) manual for usage documentation of
      both commands.
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    CMake Error: CMake was unable to find a build program corresponding to "Ninja".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    CMake Warning (dev) in CMakeLists.txt:
      No cmake_minimum_required command is present.  A line of code such as
    
        cmake_minimum_required(VERSION 3.26)
    
      should be added at the top of the file.  The version specified may be lower
      if you wish to support older CMake versions for this project.  For more
      information run "cmake --help-policy CMP0000".
    This warning is for project developers.  Use -Wno-dev to suppress it.
    
    -- Configuring incomplete, errors occurred!
    FATAL ERROR: command exited with status 1: 'C:\Program Files\CMake\bin\cmake.EXE' '-DWEST_PYTHON=C:\Users\dougl\AppData\Local\Programs\Python\Python311\python.exe' '-BC:\Users\dougl\git\my-workspace\build' -GNinja -DBOARD=custom_plank '-SC:\Users\dougl\git\my-workspace\ncs-example-application'
    

    No.

    What is the right thing to do here?

    What are my other options?

    I tried this from a shell that has no zephyr environment variables set.

    I also tried one from a shell that sourced the zephyr environment (source /c/ncs/v2.3.0/zephyr/zephyr-env.sh).

    I tried this from the ncs desktop application to launch a bash shell, that has issues with the compiler environment variable being set.

    Did you actually yourself validate the example builds and works from a clean start?  What specifically did you do?

    How can I make progress here?

Related