STM32工程加快编译速度
原来一直没有去了解stm32工程的编译版本,业余时工程虽然编译的时间比较长,好在没有开发的时间限制,因此也就咬咬牙忍下来了,最近工程的工期比较紧,工程里面lwip,usb一大堆模块全部编译要将近四分钟,这哪行,网上搜论坛发现可以加快文件的编译速度,一不做二不休,赶紧搞起来
keil工程虽然已经升级过了,但是compiler默认使用的还是v5版本,工程文件少倒也还可以应付,但是工程文件一多,工程文件5s编译一个就会显得特别的慢,最起码也要2到3分钟起步。如下是编译器的修改流程。
本来以为就大功告成了,结果给我报了一大堆错。
…/Middlewares/Third_Party/LwIP/system\arch/cc.h(48): error: ‘sys/time.h’ file not found
不过不要慌,下面是解决方法。
在cc.h文件下面的
//cc.h
#if defined (__GNUC__) & !defined (__CC_ARM)
替换成
#if defined (__GNUC__) && !defined (__CC_ARM) && !(defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
此时再次编译
有下列三个错误:
DEMO_TEST\DEMO_TEST.axf: Error: L6218E: Undefined symbol sio_open (referred from slipif.o).
DEMO_TEST\DEMO_TEST.axf: Error: L6218E: Undefined symbol sio_send (referred from slipif.o).
DEMO_TEST\DEMO_TEST.axf: Error: L6218E: Undefined symbol sio_tryread (referred from slipif.o).
出现下列错误的主要原因是sio_send(),sio_open()和sio_tyread()三个api函数没有申明。
因此我们需要对sio.h的定义进行修改。
如图,将文中的#if define(__CC_ARM)修改成如上形式。
#if defined (__GNUC__) && !defined (__CC_ARM) && !(defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))
编译速度就非常快啦,在做项目中能够节省大量的编程时间。