![]() |
發布時間: 2022-4-26 21:28
正文摘要: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" ... |
lkc8210 發表于 2022-4-27 14:56 謝謝了,重新指定了output文件夾,剛試了一下編譯通過了 |
zenmoleshi 發表于 2022-4-27 15:10 指定了output文件夾 |
早年C51必須用DOS8.3文件名,包括路徑名,舉個栗子,12345678.ABC,如果長度長了就認不出來,會出現系統IO錯誤,無法生成文件。 |
output要自己選路徑的,好比你買快遞又不給人家收貨地址![]() |
你把Project 和 Hex的output路徑放到哪里了? Keil沒有權限產生檔案 |
有沒有高手指點一下,感覺是keil設置問題 |
頂一下 |
以上是代碼![]() |
#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) { } |