Linker unable to find the libraries

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Linker unable to find the libraries

3,545 Views
GabrielB88
Contributor I

Dear Community,

I am trying to set a #OM15076-3 Carrier Board with a #JN5189 Module for a #QN9090 development.

I'm trying to run a BLE project based on an example that was working in MCUXpresso version 11.6.0 with QN9090DK6 SDK version 2.6.5 (Same workspace). I'm currently running the same IDE version with SDK 2.6.10.

Looks like in <path>\workspace4\qn9090dk6_beacon_bm\libs I'm missing the following libraries:

  • l_crypto_m4
  • lRadio
  • l_ble_controller
  • lPDM
  • l_ble_5-0_host_peripheral_cm4

    I've tried to manually add them but it becomes a spiral of errors.

    Here are the logs:
Building target: qn9090dk6_beacon_bm.axf
Invoking: MCU Linker
arm-none-eabi-gcc -L"D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\libs" -Xlinker --defsym=gUseInternalStorageLink_d=1 -Xlinker -Map="qn9090dk6_beacon_bm.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --no-wchar-size-warning -Xlinker --sort-section=alignment -Xlinker --defsym=__ram_vector_table__=1 -Xlinker --defsym=gUseNVMLink_d=1 -Xlinker --defsym=__app_load_address__=0 -Xlinker --defsym=__app_stated_size__=294912 -Xlinker --cref -mcpu=cortex-m4 -mthumb -T connectivity.ld -L ../src -u _scanf_float -o "qn9090dk6_beacon_bm.axf" ./utilities/fsl_assert.o ./utilities/fsl_debug_console.o ./utilities/fsl_str.o  ./startup/startup_qn9090.o  ./source/common/gatt_db/gatt_database.o  ./source/common/ApplMain.o ./source/common/ble_conn_manager.o ./source/common/ble_controller_task.o ./source/common/ble_host_tasks.o ./source/common/ble_init.o ./source/common/ble_service_discovery.o  ./source/app_config.o ./source/beacon.o ./source/semihost_hardfault.o  ./framework/XCVR/DK6/fsl_xcvr.o  ./framework/TimersManager/source/TMR_Adapter.o ./framework/TimersManager/source/TimersManager.o  ./framework/SerialManager/source/SerialManager.o ./framework/SerialManager/source/UART_Serial_Adapter.o  ./framework/SecLib/source/SecLib.o  ./framework/Reset/source/Reset.o  ./framework/RNG/source/RNG.o  ./framework/Panic/source/Panic.o  ./framework/PDM/source/pdm_port.o  ./framework/OSAbstraction/source/fsl_os_abstraction_bm.o  ./framework/NVM/source/NV_Flash.o ./framework/NVM/source/NV_FsciCommands.o  ./framework/ModuleInfo/source/ModuleInfo.o  ./framework/Messaging/source/Messaging.o  ./framework/MemManager/source/MemManager.o  ./framework/LowPower/source/PWR.o ./framework/LowPower/source/PWRLib.o ./framework/LowPower/source/PWR_setjmp.o  ./framework/Logging/source/dbg_logging.o  ./framework/Lists/source/GenericList.o  ./framework/LED/source/LED.o  ./framework/Keyboard/source/Keyboard.o  ./framework/GPIO/source/GPIO_Adapter.o  ./framework/FunctionLib/source/FunctionLib.o  ./framework/Flash/Flash_Adapter.o  ./drivers/fsl_adc.o ./drivers/fsl_aes.o ./drivers/fsl_clock.o ./drivers/fsl_common.o ./drivers/fsl_ctimer.o ./drivers/fsl_dma.o ./drivers/fsl_flash.o ./drivers/fsl_flexcomm.o ./drivers/fsl_fmeas.o ./drivers/fsl_gpio.o ./drivers/fsl_inputmux.o ./drivers/fsl_pint.o ./drivers/fsl_power.o ./drivers/fsl_reset.o ./drivers/fsl_rng.o ./drivers/fsl_rtc.o ./drivers/fsl_sha.o ./drivers/fsl_spi.o ./drivers/fsl_spifi.o ./drivers/fsl_usart.o ./drivers/fsl_usart_dma.o ./drivers/fsl_wtimer.o  ./device/system_QN9090.o  ./component/uart/usart_adapter.o  ./component/serial_manager/serial_manager.o ./component/serial_manager/serial_port_uart.o  ./component/lists/generic_list.o  ./board/board.o ./board/board_utility.o ./board/hardware_init.o ./board/pin_mux.o  ./bluetooth/host/config/ble_globals.o  ./bluetooth/hci_transport/source/hcit_serial_interface.o  ./bluetooth/controller/config/controller_config.o   -lm -lc -lgcc -lnosys -l_crypto_m4 -lRadio -l_ble_controller -lPDM -l_ble_5-0_host_peripheral_cm4_noFP
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_crypto_m4
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lRadio
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_ble_controller
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -lPDM
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot find -l_ble_5-0_host_peripheral_cm4_noFP
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:80: qn9090dk6_beacon_bm.axf] Error 1
make: *** [makefile:71: all] Error 2
"make -r -j8 all" terminated with exit code 2. Build might be incomplete.


Thanks in advance for your help.

Best regards,
Gabriel

0 Kudos
Reply
10 Replies

3,526 Views
EduardoZamora
NXP TechSupport
NXP TechSupport

Hello @GabrielB88,

Hope you are doing well.

Could you please help us with more details about your development? How are you modifying the example? How can I reproduce this issue?

I tried the following steps to try to reproduce this behavior:

1. Uninstall all the QN9090 SDKs from MCUXpresso
2. Install SDK 2.6.5
3. Import beacon_bm example from SDK
4. Build project
5. Uninstall SDK 2.6.5
6. Install SDK 2.6.10
7. Clean project
8. Build project

The project builds successfully using the IDE 11.6.0 and the same workspace.

Regards,
Eduardo.

0 Kudos
Reply

3,521 Views
GabrielB88
Contributor I

Hi Eduardo,

Thanks for the follow-up.

Basically, my lib folder is empty since it was working, I don't know why.
 
Then I add all of those libraries from the "new" example and get more errors.

What happens if you delete those files, do you have the same error?

If so, what happens when you add them back manually?

Thanks again for your collaboration.

Regards,
Gabriel

0 Kudos
Reply

3,516 Views
EduardoZamora
NXP TechSupport
NXP TechSupport

Hi,

These libraries should be automatically added when you import the project from the SDK to your workspace. Could you please try importing again a clean version of the beacon_bm project from the SDK and confirm if these files were added?

Just to confirm, where are you getting these files from? When you say


Then I add all of those libraries from the "new" example and get more errors

Does it mean that you are copying these files from a clean/re-imported beacon_bm project?

I tried deleting the libraries and copying them from heart_rate_sensor project and the project builds successfully.

Could you please provide a screenshot of your Project properties > C/C++ Build > Settings >MCU Linker > Libraries?

Regards,
Eduardo.

0 Kudos
Reply

3,501 Views
GabrielB88
Contributor I

Hi Eduardo,

These are the logs you asked for when there are no files in the libs folder:

m
c
gcc
nosys
_crypto_m4
Radio
_ble_controller
PDM
_ble_5-0_host_peripheral_cm4_noFP

 

Indeed, the files I'm adding manually are from another BLE example (that is properly working).
As soon as I add them from a fresh example, these are the message errors:

Building target: qn9090dk6_beacon_bm.axf
Invoking: MCU Linker
arm-none-eabi-gcc -L"D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\libs" -Xlinker --defsym=gUseInternalStorageLink_d=1 -Xlinker -Map="qn9090dk6_beacon_bm.map" -Xlinker --gc-sections -Xlinker -print-memory-usage -Xlinker --no-wchar-size-warning -Xlinker --sort-section=alignment -Xlinker --defsym=__ram_vector_table__=1 -Xlinker --defsym=gUseNVMLink_d=1 -Xlinker --defsym=__app_load_address__=0 -Xlinker --defsym=__app_stated_size__=294912 -Xlinker --cref -mcpu=cortex-m4 -mthumb -T connectivity.ld -L ../src -u _scanf_float -o "qn9090dk6_beacon_bm.axf" ./utilities/fsl_assert.o ./utilities/fsl_debug_console.o ./utilities/fsl_str.o  ./startup/startup_qn9090.o  ./source/common/gatt_db/gatt_database.o  ./source/common/ApplMain.o ./source/common/ble_conn_manager.o ./source/common/ble_controller_task.o ./source/common/ble_host_tasks.o ./source/common/ble_init.o ./source/common/ble_service_discovery.o  ./source/app_config.o ./source/beacon.o ./source/semihost_hardfault.o  ./framework/XCVR/DK6/fsl_xcvr.o  ./framework/TimersManager/source/TMR_Adapter.o ./framework/TimersManager/source/TimersManager.o  ./framework/SerialManager/source/SerialManager.o ./framework/SerialManager/source/UART_Serial_Adapter.o  ./framework/SecLib/source/SecLib.o  ./framework/Reset/source/Reset.o  ./framework/RNG/source/RNG.o  ./framework/Panic/source/Panic.o  ./framework/PDM/source/pdm_port.o  ./framework/OSAbstraction/source/fsl_os_abstraction_bm.o  ./framework/NVM/source/NV_Flash.o ./framework/NVM/source/NV_FsciCommands.o  ./framework/ModuleInfo/source/ModuleInfo.o  ./framework/Messaging/source/Messaging.o  ./framework/MemManager/source/MemManager.o  ./framework/LowPower/source/PWR.o ./framework/LowPower/source/PWRLib.o ./framework/LowPower/source/PWR_setjmp.o  ./framework/Logging/source/dbg_logging.o  ./framework/Lists/source/GenericList.o  ./framework/LED/source/LED.o  ./framework/Keyboard/source/Keyboard.o  ./framework/GPIO/source/GPIO_Adapter.o  ./framework/FunctionLib/source/FunctionLib.o  ./framework/Flash/Flash_Adapter.o  ./drivers/fsl_adc.o ./drivers/fsl_aes.o ./drivers/fsl_clock.o ./drivers/fsl_common.o ./drivers/fsl_ctimer.o ./drivers/fsl_dma.o ./drivers/fsl_flash.o ./drivers/fsl_flexcomm.o ./drivers/fsl_fmeas.o ./drivers/fsl_gpio.o ./drivers/fsl_inputmux.o ./drivers/fsl_pint.o ./drivers/fsl_power.o ./drivers/fsl_reset.o ./drivers/fsl_rng.o ./drivers/fsl_rtc.o ./drivers/fsl_sha.o ./drivers/fsl_spi.o ./drivers/fsl_spifi.o ./drivers/fsl_usart.o ./drivers/fsl_usart_dma.o ./drivers/fsl_wtimer.o  ./device/system_QN9090.o  ./component/uart/usart_adapter.o  ./component/serial_manager/serial_manager.o ./component/serial_manager/serial_port_uart.o  ./component/lists/generic_list.o  ./board/board.o ./board/board_utility.o ./board/hardware_init.o ./board/pin_mux.o  ./bluetooth/host/config/ble_globals.o  ./bluetooth/hci_transport/source/hcit_serial_interface.o  ./bluetooth/controller/config/controller_config.o   -lm -lc -lgcc -lnosys -l_crypto_m4 -lRadio -l_ble_controller -lPDM -l_ble_5-0_host_peripheral_cm4_noFP
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_GenerateKeys':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2284: undefined reference to `Ecdh_GenerateNewKeys'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2317: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_ComputeDhKey':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2397: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_GenerateKeysSeg':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2802: undefined reference to `Ecdh_GenerateNewKeysSeg'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2813: undefined reference to `gEcP256_MultiplicationBufferSize_c'
d:/nxp/mcuxpressoide_11.6.0_8187/ide/plugins/com.nxp.mcuxpresso.tools.win32_11.6.0.202112161359/tools/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: ./framework/SecLib/source/SecLib.o: in function `ECDH_P256_ComputeDhKeySeg':
D:\Users\gabri\Documents\MCUXpressoIDE_11.6.0_8187\workspace4\qn9090dk6_beacon_bm\Debug/../framework/SecLib/source/SecLib.c:2896: undefined reference to `gEcP256_MultiplicationBufferSize_c'
Memory region         Used Size  Region Size  %age Used
        Flash640:      203916 B       288 KB     69.14%
     SCRATCH_RAM:          1 KB         1 KB    100.00%
            RAM0:       14504 B        87 KB     16.28%
            RAM1:          0 GB        64 KB      0.00%
collect2.exe: error: ld returned 1 exit status
make[1]: *** [makefile:80: qn9090dk6_beacon_bm.axf] Error 1
make: *** [makefile:71: all] Error 2
"make -r -j8 all" terminated with exit code 2. Build might be incomplete.

 
Thanks again for your help, looking forward to hearing from you.

Regards,
Gabriel

0 Kudos
Reply

3,448 Views
EduardoZamora
NXP TechSupport
NXP TechSupport

Hi,

Could you please help us with more details about what are you trying to achieve? What are the modifications you have done to the project? Are you trying to merge two different projects?

Please, try to confirm if these libraries are added when re-importing a clean version of the same project from the SDK.

Could you provide a step-by-step guide that helps me to reproduce this behavior? Currently I am not able to see/reproduce this issue.

Regards,
Eduardo.

0 Kudos
Reply

3,430 Views
GabrielB88
Contributor I

Hi @EduardoZamora,

Thanks for the follow-up as always.

 Indeed, the example "qn9090dk6_beacon_bm" was modified. Part of those modifications was to merge different examples.

As soon as I create the same example from scratch, I have no problem building the code without modifications.

The fact is, many months ago, that workspace was running fine on the demo board. Now I cannot even build it.

I think the easiest way for you to reproduce the issue is by running my workspace.

Please, find attached one of the workspace files I'm struggling with.
Let me know if it is ok with you to proceed like this.

Regards,
Gabriel

0 Kudos
Reply

3,412 Views
EduardoZamora
NXP TechSupport
NXP TechSupport

Hi,

Due the nature of your application (a merge or hybrid using different projects/extras), I will strongly suggest creating a new project using the latest SDK version as base for your development.

Regards,
Eduardo.

0 Kudos
Reply

3,402 Views
GabrielB88
Contributor I

Hi @EduardoZamora,

I completely understand, it would be better to restart with a project.

The problem is that I have 3 or 4 workspaces with different projects merged, so it requires a lot of effort thanks to an SDK update (I guess).

I'll start with one project and see if I can manage to make it work with the actual setup, but, did you manage to replicate the problem with my project?

It will be good to understand at least what will be the depth of changes I need to do with respect to the previous SDK project dev.

Thanks as always.

Regards,
Gabriel

0 Kudos
Reply

3,370 Views
EduardoZamora
NXP TechSupport
NXP TechSupport

Hi,

The project structure may be different across the example projects and merging them may cause some conflicts.

You can try copying "libs" and "framework/SecLib" folders that your base project requires from a clean version of the same project from the SDK (beacon_bm, in this case). The project should build, nonetheless, we cannot assure that your application will be fully functional, and our support will be limited.

Please consider creating a new project using the latest SDK version as base for your development.

Regards,
Eduardo.

0 Kudos
Reply

3,456 Views
GabrielB88
Contributor I
Are there any changes in the file SecLib in the last SDK versions?
0 Kudos
Reply