Fatal error: C3906U: Malformed via file ‘…\obj\main.__i’.
关键词: stm32;keil;错误
问题:
在keil编译过程中,发现这样的一个报错,在rebuild之后也是有的,可以看到有很多错误,但是最后的error只有一个。
分析:
![image.png](https://img-blog.csdnimg.cn/img_convert/96249a5cc807d4a62c4dd1acce1e8c0d.png#clientId=u9acf8ddc-877a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=364&id=ub9917ce5&margin=[object Object]&name=image.png&originHeight=528&originWidth=884&originalType=binary&ratio=1&rotation=0&showTitle=false&size=58360&status=done&style=none&taskId=u1809b566-b7fc-4f26-bb77-8a43596f759&title=&width=609) 然后通过搜索发现有人说是中文路径的问题,但在后面发现其实不是中文路径的问题,是特殊符号也是不能编译通过的。如下文件下路径: ![image.png](https://img-blog.csdnimg.cn/img_convert/72c453b3b017f9ccbfc8f3bf0e5d1ed2.png#clientId=u9acf8ddc-877a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=314&id=ud355b0b7&margin=[object Object]&name=image.png&originHeight=500&originWidth=973&originalType=binary&ratio=1&rotation=0&showTitle=false&size=88863&status=done&style=none&taskId=u964534e6-1930-494e-b6c1-a9926ce87ef&title=&width=611.5) 像正点原子的也是有中文路径的可以编译成功,但是最后但是上第一个文件夹中的不能被编译成功就是因为有“#”,同理其他的一些符号也是如此的。
解决方法:
在路径中不要有特殊符号就好了,我改成了如下: ![image.png](https://img-blog.csdnimg.cn/img_convert/47eef1a06a604ee4297c192a3e7a0224.png#clientId=u9acf8ddc-877a-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=24&id=udf609af8&margin=[object Object]&name=image.png&originHeight=35&originWidth=962&originalType=binary&ratio=1&rotation=0&showTitle=false&size=3202&status=done&style=none&taskId=u03c936c2-866f-4097-badc-fb4e72e5e18&title=&width=652) 因为在一般情况下对于“_”下横线来说,是在任何编译环境下都是可以使用的。同时在做文件分类的时候,自动排序在最前面,这样刚好满足我自己需求。
|