在用KEIL C51,经常会遇到定义了的函数未调用,编译时会发出“UNCALLED SEGMENT,IGNORED FOR OVERLAY PROCESS”的警告,我们不想手动去删除,也不想这部分代码被编译和链接进最终的程序,以免浪费有限的储存空间。方法如下:
未设置的情况下:

设置如下
1.把target options中的device页中选上“use Extended Linker(LX51) instead of BL51”.如下图:

2.在LX51 Misc 页中的Misc Control中填入“REMOVEUNUSED”,如下图:

3.重新编译,结果如下图:

与前面未设置之前比较,使用“REMOVEUNUSED”禁止多余部分分配空间后,警告没有并且代码也减少。
本文介绍如何在KEILC51中通过设置LX51链接器选项来移除未调用的函数,从而节省存储空间。具体步骤包括启用扩展链接器并使用REMOVEUNUSED指令。
1712





