找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3054|回复: 9
收起左侧

*** ERROR L211: I/O ERROR ON OUTPUT FILE Keil 编译时出现问题,请帮指点一下

[复制链接]
ID:46943 发表于 2022-4-26 21:28 | 显示全部楼层 |阅读模式
捕获.JPG
Build started: Project: Project
Build target 'Target 1'
linking...
LX51 LINKER/LOCATER V4.66.97.0 - SN: K1DZC-4GYRBC
COPYRIGHT ARM Germany GmbH 1995 - 2019
@..\Project.lnp "..\main.obj"
TO "..\Project"
Rtx51Tiny
PRINT(".\Listings\Project.map")
*** ERROR L211: I/O ERROR ON OUTPUT FILE:
    EXCEPTION 0029H: ACCESS TO FILE DENIED
    FILE: ..\Project
Target not created.
Build Time Elapsed:  00:00:01

回复

使用道具 举报

ID:46943 发表于 2022-4-26 21:29 | 显示全部楼层
#include "datatype.h"
#include "menu.h"

#include <string.h>
#include <stdio.h>
#include <stdlib.h>


void func(void)
{

}

//首先定义一个菜单结构体
typedef struct menu                      //定义一个菜单
{
unsigned char range_from,range_to;     //当前显示的项开始及结束序号
unsigned char itemCount;               //项目总数
unsigned char selected;                //当前选择项
unsigned char *menuItems[17];                  //菜单项目
struct menu **subMenus;                //子菜单
struct menu *parent;                   //上级菜单 ,如果是顶级则为null
void (**func)();                       //选择相应项按确定键后执行的函数

}Menu;

Menu MainMenu = {                       //定义主菜单
0,3,4,0,                               //默认显示0-3项,总共4项,当前选择第0项
  {
  "测量表          ",                   //  >表示有下级选项
  "其他设置        ",
  "保护设定        ",
  "查询           >"
  }
};

Menu searchMenu = {                    //查询菜单
0,3,6,0,
{
  "记帐记录明细   ",
  "未采集记录数   ",
  "设备机号       ",
  "本机IP地址     ",
  "记录空间大小   ",
  "软件版本       "
}
};
Menu *currentMenu;                               //当前的菜单



//初始化菜单:
void initMenu()
{
char mempool[512];
init_mempool (&mempool, sizeof(mempool));
MainMenu.subMenus = malloc(sizeof(&MainMenu)*4);
MainMenu.subMenus[0] = &searchMenu;//第1到3项没有子菜单置null,选择后程序会调用func中相应项中的函数
MainMenu.subMenus[1] = NULL;
MainMenu.subMenus[2] = NULL;
MainMenu.subMenus[3] = NULL;//第四项查询有子菜单
       
MainMenu.func = malloc(sizeof(&func)*4);
MainMenu.func[0] = NULL;
MainMenu.func[1] = NULL;
MainMenu.func[2] = &func;//当选择了并按了确定,会执行func函数
MainMenu.func[3] = NULL;
MainMenu.parent = NULL;//表示是顶级菜单

searchMenu.subMenus = malloc(sizeof(&searchMenu)*6);
searchMenu.subMenus[0] = searchMenu.subMenus[1] = searchMenu.subMenus[2] = searchMenu.subMenus[3] = searchMenu.subMenus[4] = searchMenu.subMenus[5] = NULL;
searchMenu.func = malloc(sizeof(&printf)*6);
searchMenu.func[0] = searchMenu.func[1] = searchMenu.func[2] = searchMenu.func[3] = searchMenu.func[4] = searchMenu.func[5] = NULL;
searchMenu.parent = &MainMenu;//上一级菜单是MainMenu.进入查询子菜单后按返回键,将会显示这个菜单项

currentMenu = &MainMenu;

}

void main(void)
{


}
回复

使用道具 举报

ID:46943 发表于 2022-4-26 21:29 | 显示全部楼层
以上是代码
回复

使用道具 举报

ID:301191 发表于 2022-4-27 03:17 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:46943 发表于 2022-4-27 13:35 来自手机 | 显示全部楼层
有没有高手指点一下,感觉是keil设置问题
回复

使用道具 举报

ID:161164 发表于 2022-4-27 14:56 | 显示全部楼层
你把Project 和 Hex的output路径放到哪里了?
Keil没有权限产生档案
回复

使用道具 举报

ID:951528 发表于 2022-4-27 15:10 | 显示全部楼层
output要自己选路径的,好比你买快递又不给人家收货地址
回复

使用道具 举报

ID:883242 发表于 2022-4-27 15:29 | 显示全部楼层
早年C51必须用DOS8.3文件名,包括路径名,举个栗子,12345678.ABC,如果长度长了就认不出来,会出现系统IO错误,无法生成文件。
回复

使用道具 举报

ID:46943 发表于 2022-4-27 17:59 | 显示全部楼层
zenmoleshi 发表于 2022-4-27 15:10
output要自己选路径的,好比你买快递又不给人家收货地址

指定了output文件夹
回复

使用道具 举报

ID:46943 发表于 2022-4-27 18:02 | 显示全部楼层
lkc8210 发表于 2022-4-27 14:56
你把Project 和 Hex的output路径放到哪里了?
Keil没有权限产生档案

谢谢了,重新指定了output文件夹,刚试了一下编译通过了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表