A. keil編譯錯誤 密碼鎖 L104 L105 L17 L105 L118
以下是編譯結果
Build target 'Target 1'
compiling 密碼鎖c.c...
compiling 002.c...
linking...
BL51 BANKED LINKER/LOCATER V6.22 - SN: Eval Version
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
"密碼鎖c.obj",
"002.obj"
TO "001"
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: FLAG
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: MAIN
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: STOP
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: START
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: DELAY
MODULE: 002.obj (002)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?INIT1302?密碼薩C
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN?002
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?002
LENGTH: 002CH
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: BUFFER
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: DSY_BUFFER1
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: USERPASSWORD
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: DSY_BUFFER
SEGMENT: ?DT?002
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: MAIN
MODULE: D:\程序\KEIL 4\C51\LIB\C51S.LIB (?C_INIT)
ADDRESS: 13F5H
******************************************************************************
* RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT; USED: 112DH BYTE (214%) *
******************************************************************************
Program Size: data=160.4 xdata=0 code=5197
LINK/LOCATE RUN COMPLETE. 2 WARNING(S), 11 ERROR(S)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: FLAG
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: MAIN
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: STOP
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: START
MODULE: 002.obj (002)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: DELAY
MODULE: 002.obj (002)
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?INIT1302?密碼薩C
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?MAIN?002
*** ERROR L107: ADDRESS SPACE OVERFLOW
SPACE: DATA
SEGMENT: ?DT?002
LENGTH: 002CH
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: BUFFER
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: DSY_BUFFER1
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: USERPASSWORD
SEGMENT: ?DT?002
*** ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT
SYMBOL: DSY_BUFFER
SEGMENT: ?DT?002
*** ERROR L118: REFERENCE MADE TO ERRONEOUS EXTERNAL
SYMBOL: MAIN
MODULE: D:\程序\KEIL 4\C51\LIB\C51S.LIB (?C_INIT)
ADDRESS: 13F5H
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
MODULE: D:\程序\KEIL 4\C51\LIB\C51S.LIB (-----)
LIMIT: 0800H BYTES
Target not created
B. 求解,keil編譯無法通過,百度搜不到答案
主要是三個問題:
第一、前面兩個警告是說函數定義了卻沒有調用, 可以不用管。
第二、Error L116的錯誤是說超過2K的程序都被切掉,沒有編譯它們了。可能原因:1、你的軟體沒有注冊,使用的評估版,最多隻能編譯2K程序;2、在下圖的Code Rom Size處設置限定了2K。
第三、後面的Error都是RAM空間不夠,你可以優化你的程序,或者試試設置下圖紅線區域的Memory Model:
C. 用keil編譯時出現的問題
*** WARNING L15: MULTIPLE CALL TO SEGMENT
SEGMENT: ?PR?_WRITE_COM?時鍾
CALLER1: ?PR?TIMER0?時鍾
CALLER2: ?C_C51STARTUP
這是說你在『時鍾』這個文本文件中多次調用了『WRITE_COM』這個子程序,而調它的就是『TIMER0』『C_C51STARTUP』。
下面的幾句同樣是這個原因分別調用了WRITE_DATE,WRITE_SFM,WRITE_NYR,也可能是你不正確的調用了它,你注意一下就行了,你沒發數據,我也只能說到這里。
*** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
MODULE: D:\KEIL\C51\LIB\C51S.LIB (-----)
LIMIT: 0800H BYTES
Target not created
這個就是一樓說的你的軟體沒有被完全破解,最好到網上去找個注冊碼,用那注冊機太麻煩了,我也就不多說了,最後一句就是目標沒有被創建!