用Keil4打開拷貝過來的工程,然後直接進行編譯報錯如下:
linking...
Program Size: Code=16320 RO-data=936 RW-data=25392 ZI-data=7368
FromELF: creating hex file...
After Build - User command #1: C:\Keil\ARM\BIN40\fromelf.exe --bin -o .\bin\bootLoader.bin .\Obj\bootLoader.axf
--- Error: User Command terminated, Exit-Code = 1
".\bin\bootLoader.axf" - 1 Errors, 0 Warning(s). Target not created
開始以爲是拷貝過來,裏面有編譯過的殘留文件導致。Clean了幾次並重新編譯,錯誤依舊。看了編譯過程,沒有任何錯誤信息。仔細看了下連接時的錯誤提示,發現這句log:“After Build - User command #1: C:\Keil\ARM\BIN40\fromelf.exe --bin -o .\bin\bootLoader.bin .\Obj\bootLoader.axf”,很有問題。
按照提示應該說明,編譯後執行命令“C:\Keil\ARM\BIN40\fromelf.exe --bin -o .\bin\bootLoader.bin .\Obj\bootLoader.axf”,而我的Keil安裝路徑不是這個,也就是說拷貝過來的工程配置中fromelf.exe的路徑不對。
【解決方法】:打開Keil的Options for Target選項卡,在User->Run User Programms After Build/Rebuild選項欄的Run #1中,果然看到上述執行命令的指定,於是取消勾選並刪除上述命令,保存後,重新編譯。