求助 关于“Rebuild”和"Build"编译的奇怪问题

2020-01-11 18:07发布

使用KEIL mdk453版本软件,编译UCOS-II+ucgui39程序时
1、 点击“Rebuild all target files” 编译时,出现 error - can't create command input file '. vmdklib_mem.__i'报错信息,
编译时部分编译信息如下
    :
    :
    :
compiling os_sem.c...
compiling os_task.c...
compiling os_time.c...
compiling os_tmr.c...
assembling os_cpu_a.asm...
compiling os_cpu_c.c...
compiling os_dbg.c...
error - can't create command input file '. vmdklib_mem.__i'
Target not created
2、再次点击“Rebuild all target files”编译时,还是出错,但出错变成了error - can't create command input file '. vmdkcpu_c.__i'
编译时部分编译信息如下
     :
     :
     :
compiling stm32f2xx_fsmc.c...
compiling stm32f2xx_dma.c...
compiling stm32f2xx_exti.c...
compiling stm32f2xx_i2c.c...
compiling stm32f2xx_syscfg.c...
assembling cpu_a.asm...
error - can't create command input file '. vmdkcpu_c.__i'
Target not created
3、又第三次点击“Rebuild all target files” 编译时,依然出错 但错误变成了error - can't create command input file '. vmdkf8x15b_1.__i'
编译时部分编译信息如下
     :
     :
     :
compiling F08_ASCII.c...
compiling F8x8.c...
compiling F8x10_ASCII.c...
compiling F8x12_ASCII.c...
compiling F8x13_1.c...
compiling F8x13_ASCII.c...
error - can't create command input file '. vmdkf8x15b_1.__i'
Target not created
4、又第四次点击“Rebuild all target files” 编译时,依然还是出错,错误又变成 了error - can't create command input file '. vmdkgui_drawpolyline.__i'
编译时部分编译信息如下
     :
     :
     :
compiling GUI_DrawFocusRect.c...
compiling GUI_DrawGraph.c...
compiling GUI_DrawHLine.c...
compiling GUI_DrawPie.c...
compiling GUI_DrawPixel.c...
error - can't create command input file '. vmdkgui_drawpolyline.__i'
Target not created
5、又第五次点击“Rebuild all target files” 编译时,不出我所料还是报错了,错误还是又变了 error - can't create command input file '. vmdklcdp8666.__i'
编译时部分编译信息如下
     :
     :
     :
compiling LCDP444_12_1.c...
compiling LCDP444_16.c...
compiling LCDP555.c...
compiling LCDP556.c...
compiling LCDP565.c...
compiling LCDP655.c...
error - can't create command input file '. vmdklcdp8666.__i'
Target not created
6、又第六次点击“Rebuild all target files” 编译时,继续报错了,错误又变了 error - can't create command input file '. vmdklcd_getpixelcolor.__i'
编译时部分编译信息如下
     :
     :
     :
compiling LCD_DrawBitmap_M565.c...
compiling LCD_DrawVLine.c...
compiling LCD_GetColorIndex.c...
compiling LCD_GetEx.c...
compiling LCD_GetNumDisplays.c...
error - can't create command input file '. vmdklcd_getpixelcolor.__i'
Target not created
7、又第七次点击“Rebuild all target files” 编译时,继续报错了,错误又变了 error - can't create command input file '. vmdkgui_cursorarrowm.__i'
编译时部分编译信息如下
     :
     :
     :
compiling GUI_CalcColorDist.c...
compiling GUI_ClearRectEx.c...
compiling GUI_Color2VisColor.c...
compiling GUI_CursorArrowL.c...
compiling GUI_CursorArrowLI.c...
compiling GUI_CursorArrowLPx.c...
error - can't create command input file '. vmdkgui_cursorarrowm.__i'
Target not created
8、又第八次点击“Rebuild all target files” 编译时,继续报错了,错误又变了 error - can't create command input file '. vmdklcdp222.__i'
编译时部分编译信息如下
     :
     :
     :
compiling GUIAACircle.c...
compiling GUIAALib.c...
compiling GUIAALine.c...
compiling GUIAAPoly.c...
compiling GUIAAPolyOut.c...
compiling LCDP111.c...
error - can't create command input file '. vmdklcdp222.__i'
Target not created
9、又第九次点击“Rebuild all target files” 编译时,继续报错了,错误又变了 error - can't create command input file '. vmdkos_cpu_a._ia'
编译时部分编译信息如下
     :
     :
     :
compiling os_mutex.c...
compiling os_q.c...
compiling os_sem.c...
compiling os_task.c...
compiling os_time.c...
compiling os_tmr.c...
error - can't create command input file '. vmdkos_cpu_a._ia'
Target not created
10、又第十次点击“Rebuild all target files” 编译时,继续报错了,错误又变了 error - can't create command input file '. vmdkgui_drawbitmap.__i'
编译时部分编译信息如下
     :
     :
     :
compiling GUI_DispStringHCenter.c...
compiling GUI_DispStringInRect.c...
compiling GUI_DispStringInRectEx.c...
compiling GUI_DispStringInRectMax.c...
compiling GUI_DispStringLen.c...
error - can't create command input file '. vmdkgui_drawbitmap.__i'
Target not created继续编译依然出错,错误依然不同,我猜想过,如果就这样编译下去会不N次能编译通过,或者到达多少次能够重复循环报错,时间问题暂时无法测试
总结最后,
1、首先说明下程序代码本省是好的,能够正常运行与单片机上面,
2、对于我这边编译出现此问题我怀疑过软件,卸载重新安装多次,版本也换过都测试了,就是无法编译通过,又怀疑是不是"OPtions for Target "  项目中哪项没配置好,可是怎么调还是一样无法编译通过,
3、我把代码发给朋友待我编译对方说正常编译通过,我就备感纳闷,
4、对于上面我多次编译出现错误提示都不一样,第一次遇到过这样情况,我又怀猜测会不会跟“Rebuild all target files”这个编译有关,即“重新编译所有的文件” ,我点击“Build target files”即编译修改过的文件,5、一次编译通过,数次重复点击“Build target files”都能正常编译通过,
6、我又找来了一个简单的程序,不管重复点击多少次两个编译快捷图标都能顺利通过,
现在请教高手指点出现这个现象的问题到底在哪???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
xwg
1楼-- · 2020-01-11 18:09
补贴:发现 KEIL中 “Build target files”编译时也会出现编译无法通过错误提示, 多次编译也是无法编译通过,错误页不重复,但此时我点击一下“Rebuild all target files” 编译,不通过报错时,我再次点击 “Build target files”编译又正常了可以编译通过,更是奇怪了,求高手赐教指点呀!
buxinshan
2楼-- · 2020-01-11 20:27
我先猜猜   你所用的操作系统是WIN7    你将要编译的程序所在的位置是移动硬盘、U盘或者SD之类的设备中   最有可能的是在移动硬盘中  

个人理解   WIN7的对移动硬盘的读写权限有控制  默认只读     不过对移动硬盘中的数据可以删除、拷贝之类的操作  但是对数据进行修改需要管理权限

因此   我的解决问题的办法是把程序拷贝到电脑硬盘中   首先进行clean  target 操作    再进行rebuilt all      
xwg
3楼-- · 2020-01-11 21:00
 精彩回答 2  元偷偷看……
xwg
4楼-- · 2020-01-12 02:34
我试了下clean  target 操作    再进行“Rebuild all target files”编译依然无法通过,
usk5yenj4id04dm
5楼-- · 2020-01-12 06:30
难道是个BUG?
sunliezhi
6楼-- · 2020-01-12 07:47
貌似Makefile的问题,仔细找找。

一周热门 更多>