今天在搞一个STM32项目的时候,无意间删除了启动文件,重新添加启动文件,编译...却出现以下错误:
.\STM32100E-EVAL\STM32100E-EVAL.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
网上找了一圈,有人说是重新加载另外一个启动文件就可以了,也没找到别的更好的解决方法。也许那样可行,但是既然原本这个启动文件都可以继续编译,为何重新添加就不行?没这个道理的,肯定是哪里没设置好。
认真对比了很多次,也没找到错误在那里。点击错误信息,跳转到了一个.sct文件:*.o (RESET, +First) ???更加没道理了。这里怎么会出错?
后来发现新添加的.s启动文件左边没三个小红点。右键查看属性,将Include in Target Build和Always Build前面的小勾改为灰色(一定要灰色!).OK,编译通过。至于原因,看这两个的字面意思都明白了吧。但是还是没搞清楚灰色的勾跟黑色的区别,先不管,继续搞代码去... ...
一点小总结分享,希望对碰到这个问题的朋友有所帮助,若有补充,请留意