『壹』 MDK編譯出現「Target not created 」是什麼原因
出現Target not created,原因主要有:
編譯時出錯,語法錯誤,變數未定義。
連接時出錯,調用外部函數,而由缺少相應的OBJ文件。
其他原因,用Demo版,限制是程序不能大於4K,結果你超過了4k。
『貳』 keil編譯時報錯:error: L6002U: Could not open file .\***\core_cm3.o
歷時好幾次的碰壁,我終於解決這個問題了。
根據網路其他答案給的思路,其實就是修改環境變數,因為當前系統TEMP和TMP環境變數存在著中文。但是如果你直接修改 %USERPROFILE% 為其他英文路徑開Keil會卡死並閃退(其實是你打開main.c就閃退)!!!
因為修改成別的一個英文文件夾是不行的,你只是在環境變數中修改了文件路徑,但是電腦中這些路徑並不存在,所以你打開Keil才會閃退。
那麼解決問題的關鍵就是:先在系統C盤中創建好了所有的英文路徑,再你創建的文件夾路徑修改環境變數!!!
准備工作:先將你的Keil軟體關閉
1、在【C盤根目錄】創建【UserData】文件夾
點擊確定後退出。
再次打開Keil編譯即可不再報錯,再次愉快寫代碼吧。
祝願諸位萬事如意。
『叄』 怎麼解決MDK編譯的問題
warning: #550-D: variable "d" was set but never used
描述變姿世嘩量'd'定義但從未使用或者是雖然這個變數你使用了但編譯器認為變數d所在的語句沒有意義編返賣譯器把它優化了解決仔細衡量所定義的變數d是否有用
若是認定變數d所在語句有意義那麼嘗試用volatile關鍵字修飾變數d,若是真的沒有用那麼刪除掉以釋放可能的內存
.warning: #1-D: last line of file ends without a newline
描述:
文件最後一行不是新的一行
編譯器要求程序文件的最後一行必須是空行想了半天沒想通為什麼要這樣解決可以不理會若是覺得出現警告不跡行爽那麼在出現警告的文件的最後一行敲個回車空出一行
warning: #111-D: statement is unreachable
描述:
聲明不可能到達多出現在這種場合
int main(void)
{
...
while(1) //
無限循環
,
這在不使用操作系統的程序中最常見
『肆』 MDK編譯提示main.c(7): warning: #550-D: variable "XX" was set but never used怎麼破
定義了變數key,使用key的代碼為:key = SPI2_ReadWriteByte(0x00);執行函數並將函數返回值賦值給key,沒有使用這個返回。
比如
int b=a;
從a中讀取數據負值給b.其實,我是感覺聲明和負值的地方離那麼遠很奇怪。
反正循環裡面又不用,為什麼不到負值的時候才聲明。
(4)mdk編譯器出現問題擴展閱讀:
使用變數並不需要了解變數在計算機內存中的地址,只要通過變數名引用變數就可以查看或更改變數的值。在VB Script中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant。
例如,可以創建一個名為Click Count的變數來存儲用戶單擊Web頁面上某個對象的次數。