keil4编译时,一直报错,hex文件也无法创建。(编译提示如下)
Build target '目标 1'
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAY?MAIN
Program Size: data=11.0 xdata=0 code=213
creating hex file from "LED_timer&interrupt"...
OBJECT TO HEX FILE CONVERTER OH51 V2.6
COPYRIGHT KEIL ELEKTRONIK GmbH 1991 - 2001
*** ERROR: CAN'T OPEN FILE 'LED_timer&interrupt'
"LED_timer&interrupt" - 0 Error(s), 1 Warning(s).
CSDN翻了好几篇,给出的解决办法大概有3种(附在最后),但并未解决我的问题。编译错误仍然存在。
经多次重开,发现问题出在文件的命名上,文件名中除中文字不可出现,“&”等符号也不可有。(“_”可以出现)
将原文件名“LED_timer&interrupt”,改为“LED_timer”。ERROR消失。
Build target '目标 1'
compiling main.c...
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAY?MAIN
Program Size: data=11.0 xdata=0 code=213
creating hex file from "LED_timer"...
"LED_timer" - 0 Error(s), 1 Warning(s).
所以:命名不要过于花里胡哨!!!
(希望本文能解答你的困扰,代码人加油!感谢该表情包原创者,精神状态很符合)
若命名无异常,可排查以下三类问题(后附解决办法):
1.编译时只点了translate
solution:点击build或rebuild
。
(translate只编译不与工程文件产生连接)
2.当前文件引用的非系统头文件未设置加入路径
solution:点击魔法棒,在“C51”界面选择添加Include Paths即可。
3.当前.c/.a文件没有添加进入Group1(源组1)
solution1(keil4/5可用):双击“Group1(源组1)”,在弹出的添加文件窗口选择文件
完成后,工程目录为
solution2(老版本keil无法用solution1):点击进行文件添加即可。