当使用像uc /GUI这类包含c文件较多的程序时,其中有好多C文件一般是不需要改动的,因此,为了方便编译,一般都利用编译器生成了静态连接库文件,keil生成的为.lib文件,而IAR生成的为.a文件,有的网友说两者可通用,但经过我的测试发现两者不可通用,不知道是不是我在相关设置上还存在问题,
这里我就那IAR来举例说明一下具体方法:
首先,当我们编译像uc /GUI这样包含文件较多的程序时:
一次编译的时间大概是5分钟!
每当我们对编译条件作出调整时:
编译器都要重新编译全部,这样会给我调试程序带来很多不变,并且很浪费时间。
解决的办法是将此工程复制另一份,然后将其中需要频繁改动的C文件先Remove掉,留下不需要改动,但是又必须存在的C文件,如图:
接下来就是对IAR编译器进行具体的设置:
在工程上点击右键,找到Options,在General Option 中的Target 选择芯片(若是由程序改过来的,那么芯片早就选好了),然后在Outputz中的Output file选择Libray,下面是输出路径,选完之后,你会发现CateGory那一栏的选项变少了很多!
接下来将Libray Configration中的Libray选为None,这一步很重要!
别的选项就和你相关的工程有关系了!像我的:
设置完成后就进行编译!编译好后,你会在设置的路径下找到.a文件,接下来你只要在工程中添加你生成的库文件,就可以正常编译了!
编译时你会发现,时间比原来快得多了!