1、 文檔背景
工程中源代碼編譯生成J6_MCU_DEBUG.map文件,文件內可以看到相應shell_mcu_version_show的調用信息,但將該工程代碼打包成J6_MCU_DEBUG.a文件,發(fā)現該.a文件在link后的app.Map文件內沒有shell_mcu_version_show的相關地址和調用信息。

2、軟硬件環(huán)境
1)、軟件版本:Mutil 8.14 Compiler 2024.1.5
2)、電腦環(huán)境:Windows 11
3)、外設硬件:無
3、操作步驟
1)、示例工程下載鏈接如下,該工程內包含了調用的庫文件和相關編譯腳本,下列文檔根據該工程進行示例撰寫
http://www.emdoor.cloud:4000/sharing/ZzxoGbi
2)、客戶提供的link參數如下,客戶使用-external_file參數未進行執(zhí)行,參數命令撰寫方式無法執(zhí)行。

3)、詳解-external_file的使用,該指令強制從指定的庫中拉入每個導出的符號,而不是只拉入所需的符號。
若有相關多個庫文件使用-l進行相隔。示例如下:
-extractall=.UssSDK.a -l.J6_MCU_DEBUG.a ^

4)、將-extractall=.UssSDK.a -l.J6_MCU_DEBUG.a 放置在Mapfile_type后進行執(zhí)行,并且修改添加
-extractall=.J6_MCU_DEBUG.a .ldlink.ld -lnk=-v進行Link 信息檢查。

4)、運行成功后,我們在項目中看到新的Map文件,并進入查看,可以看到有shell_mcu_version_show的調用信息。

