使用armclang添加-fstack-usage等参数编译时报错求助
解决armclang不支持-fstack-usage和-fdump-ipa-cgraph参数的问题
-fstack-usage和-fdump-ipa-cgraph是GCC专属的编译参数,armclang作为ARM官方编译器并不兼容这两个参数,这就是报错的原因。以下是对应的替代方案:
获取栈使用情况
用armclang自带的--stackusage参数替代-fstack-usage,示例命令:
$ armclang --stackusage -o file file.c
编译完成后,会生成和源文件同名的.su后缀文件,里面记录了每个函数的栈空间使用细节。
获取调用图信息
armclang没有直接对应-fdump-ipa-cgraph的参数,但可以通过两种方式获取调用图:
- 链接阶段生成调用图:先编译目标文件,再用
armlink的--callgraph参数生成调用关系:
链接完成后会在输出中打印调用关系,也可结合ARM Development Studio工具查看可视化调用图。$ armclang -c file.c -o file.o $ armlink --callgraph -o file file.o - 保留中间文件分析:添加
--save-temps参数保留编译过程中的中间IR文件,通过分析这些文件梳理函数调用关系:$ armclang --save-temps -o file file.c
内容的提问来源于stack exchange,提问作者Nithin
相关产品推荐
相关产品推荐

