Keil程式設計中Source Brower : "P17" is undefined!的問題
阿新 • • 發佈:2019-01-13
部落格原文:Keil程式設計中Source Brower : "P17" is undefined!的問題
在Keil新建工程中經常會遇到一個問題,去看某一個變數定義,然後跳轉不過去,並提示Source Brower : "某某" is undefined!,在這裡我就提供一種我遇到的問題以及解決方案。
如下是標頭檔案的定義
#ifndef _LED_H_
#define _LED_H_
#define LED1 P17
#endif
如下是原始檔的定義,使用的晶片是N76E003嘍。
#include "N76E003.h" #include "Common.h" #include "Delay.h" #include "SFR_Macro.h" #include "Function_define.h" #include "LED.h" void LED_Init_IO(void) { P17_PushPull_Mode; // LED1 = 1; }
當我在標頭檔案想要檢視P17的定義時,結果提示如下圖,P17引腳沒有定義 ?是真的沒有定義嗎?答案是否定的。
注意看原始檔的內容,LED1 = 1;這句話我給註釋掉了,當我把這個註釋給去掉,編譯連結一下,在去標頭檔案檢視P17定義,直接跳轉有末有。這種問題往往出現在新建的工程中,在原始檔還沒來得及使用在標頭檔案定義的內容。我也是偶然發現的。可能是編譯器的優化問題吧。
往往還有一種情況,新建的原始檔和標頭檔案忘了新增到工程中。