1、 文档背景
工程中源代码编译生成J6_MCU_DEBUG.map文件,文件内可以看到相应shell_mcu_version_show的调用信息,但将该工程代码打包成J6_MCU_DEBUG.a文件,发现该.a文件在link后的app.Map文件内没有shell_mcu_version_show的相关地址和调用信息。

2、软硬件环境
1)、软件版本:Mutil 8.14 Compiler 2024.1.5
2)、电脑环境:Windows 11
3)、外设硬件:无
3、操作步骤
1)、示例工程下载链接如下,该工程内包含了调用的库文件和相关编译脚本,下列文档根据该工程进行示例撰写
http://www.emdoor.cloud:4000/sharing/ZzxoGbi
2)、客户提供的link参数如下,客户使用-external_file参数未进行执行,参数命令撰写方式无法执行。

3)、详解-external_file的使用,该指令强制从指定的库中拉入每个导出的符号,而不是只拉入所需的符号。
若有相关多个库文件使用-l进行相隔。示例如下:
-extractall=.UssSDK.a -l.J6_MCU_DEBUG.a ^

4)、将-extractall=.UssSDK.a -l.J6_MCU_DEBUG.a 放置在Mapfile_type后进行执行,并且修改添加
-extractall=.J6_MCU_DEBUG.a .ldlink.ld -lnk=-v进行Link 信息检查。

4)、运行成功后,我们在项目中看到新的Map文件,并进入查看,可以看到有shell_mcu_version_show的调用信息。

