㈠ 為什麼c語言編譯總出錯
可能很多人在安裝VC 6.0後有過點擊「Compile」或者「Build」後被出現的
「Compiling... ,Error spawning cl.exe」錯誤提示給郁悶過。很多人的
選擇是重裝,實際上這個問題很多情況下是由於路徑設置的問題引起的,
「CL.exe」是VC使用真正的編譯器(編譯程序),其路徑在「VC根目錄\VC98\Bin」下面,
你可以到相應的路徑下找到這個應用程序。
因此問題可以按照以下方法解決:打開vc界面 點擊VC「TOOLS(工具)」—>「Option(選擇)」
—>「Directories(目錄)」重新設置「Excutable Fils、Include Files、
Library Files、Source Files」的路徑。很多情況可能就一個盤符的不同
(例如你的VC裝在C,但是這些路徑全部在D),改過來就OK了。
如果你是按照初始路徑安裝vc6.0的,路徑應為:
executatble files:
C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin
C:\Program Files\Microsoft Visual Studio\VC98\BIN
C:\Program Files\Microsoft Visual Studio\Common\TOOLS
C:\Program Files\Microsoft Visual Studio\Common\TOOLS\WINNT
include files:
C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
library files:
C:\Program Files\Microsoft Visual Studio\VC98\LIB
C:\Program Files\Microsoft Visual Studio\VC98\MFC\LIB
source files:
C:\Program Files\Microsoft Visual Studio\VC98\MFC\SRC
C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC
如果你裝在其他盤里,則仿照其路徑變通就行(我就是裝在D盤)。
關鍵是microsoft visual studio\ 後面的東西要相同。
希望能幫助到你。
㈡ php程序編譯中常見錯誤信息及解釋
編寫程序時 無論怎樣小心謹慎 犯錯總是在所難免的 這些錯誤通常會迷惑PHP編譯器 如果開發人員無法了解編譯器報錯信息的含義 那麼這些錯誤信息不僅毫無用處 還會常常讓人感到沮喪 編譯PHP腳本時 PHP編譯器會盡其所能報告它遇到的第一個問題 這樣就產生一個問題 只有當錯誤出現時 PHP才能將它識別出來(本文後面對此問題進行了詳細描述) 正是由於這個緣故 編譯器指出出錯的那行 從表面上看來可能語法正確無誤 或者可能是根本就不存在的一行!更好地理解錯誤信息可以大大節省確定並改正錯誤內容所花費的時間 因此 在本文中 我將努力闡明多種不同類型的PHP報錯信息 以及在開發過程中如何正確理解各種報錯信息的含義 本文中所講述的內容與您所應用的PHP的版本無關 因為本文所描述的各種錯誤並不限定於某一特殊版本的特定錯誤 另外我們假定您是一位初級或者中級程序員 並已經從事編程工作有半年或一年的時間 編譯器的工作方式要搞清楚編譯器為什麼會報告某一行上存在錯誤 首先必須明確編譯器解析PHP代碼的機制 我並不打算在本文中對此進行詳細論述 但是 我們將會討論一些更易於引發錯誤的簡單概念 變數聲明如果在一條語句中聲明一個變數 具體方式如下所示 $variable = value ;編譯器首先求出語句右半部分的值(即等號右邊的所有內容) 在一些編程書籍中 將此表示為語句的 RHS (右半部分) 恰恰正是語句的這一部分常常會引發錯大逗誤 如果使用的語法不正確 就會出現解析錯誤 解析錯誤Parse error:解析錯誤 unexpected T_WHILE in c://program files//apache group//apache//htdocs//script php on line 每次確定了前一錯誤時 解析錯誤一個接一個地不斷出現 因為PHP在第一個解析錯誤之後就停止執行腳本 調試並糾正這一系列的錯誤往往會讓人覺得特別厭煩 而且 解析錯誤具有很少的信息 幾乎不報告錯誤所在的行號 具體原因就是當出現錯誤時 編譯器判定好幾行的語法看起來應該是有效的 直至遇到無效的語法 最可能的情形就是表達式中使用了預定義的字詞 例如;while = ; // Bad ? while 就是一個預定義字詞 不能分配給一個值預定義的字詞包括 while function等 如果PHP使用 uses to evaluate your code 您不能使用這些預定義字詞來命名變數 而且如果您非要這樣做的話 PHP就會報出更多的慎胡錯誤 這是您無法忍受 關於這個問題 下面的示例可能會對您有所幫助 請咨詢閱讀一下下面所示的PHP 代碼 $b = somevalueif($b == somevalue){print Hello world!;}?>錯誤位於$b =一行(在語句的末端缺少分號) 所以錯誤應該是解析錯誤:第 行缺少分號對吧?而不應該依據解析器判定的 Parse error: parse error unexpected T_IF in c://program files//apachegroup//apache//htdocs//ereg php on line 在第 行 if() 語句的語法是正確的 那麼 編譯器是被什麼給搞糊塗了呢?線索就是unexpected T_IF 部分 出現 unexpected T_???錯誤時 它所表示的含義為 編譯器發現在預定義字不應該出現的位置出現 T_IF 代表 if() T_WHILE 代表 while() T_FOR 代表 for()等 值得慶幸的是 一些錯誤的原因也很簡單 語句沒有使用分號(;)結束 比如上面的示例 字元串中缺少引號 其他一些常見的錯誤我見過的最常見的錯誤就是 當沒有使用大括弧( } )結束一個函數或者一個循環時出現的錯誤 這很可能是最常見 最讓人煩的錯誤 具體代碼如下滾孝賣 function UselessFunction() {for($i < ; $i < ; $i++){}將產生下列錯誤 Parse error: parse error unexpected $ in c://program files//apachegroup//apache//htdocs//ereg php on line 由於函數 UselessFunction 沒有使用大括弧( } )來結束 PHP編譯器不斷查找表示結束的大括弧直至到達文件末尾為止 因為編譯器未找到一個匹配的大括弧 就會報告文件末尾處有錯誤 如果正確地反映了代碼的層次結構 錯誤信息就會變得非常明顯 如果沒有標明代碼的層次結構 那麼最後要想查清楚到底忘記了什麼也會變得幾乎是不可能的 所以 請記住 一定要標明代碼的層次結構 Tab鍵可以很容易地實現這一點 對後續的開發人員來說 把握代碼框架並對其進行修改也會更容易一些 MySQL 錯誤另一極其令人討厭的錯誤信息就是最常見的MySQL錯誤 這常常使 PHP新手感到頗為頭疼 Warning: Supplied argument is not a valid MySQL result resource in 上面所報告有錯的一行可能是 while($row = mysql_fetch_array($result)) {參數 $result並不是一個有效的資源 在英語中它表示因為查詢失敗 將無法處理mysql_fetch_array 任一查詢的語法無效(您應該將查詢復制 粘貼到MySQL 控制台參考來進行測試) 或者與資料庫的連接失敗(這種情況下您應該再次檢查用戶名和口令等) 防止錯誤發生第一步 智能代碼器可採取以下幾步來消除下列錯誤出現 · 在每一條語句的末尾處 不必考慮添加分號——這應該成為一種習慣 · 總是要盡可能標明代碼的層次結構 這可以使您能夠查看是否忘記在if 調用或函數末端等位置添加大括弧 · 請使用可突出顯示語法的編輯器(如 HTML Kit) 有了這類編輯器的輔助 您就能確定是否忘記了添加引號 是否缺少分號等 lishixin/Article/program/PHP/201311/21338
㈢ 編譯器錯誤。怎麼辦
這是兩個截然不同的概念。不是叫做:編譯器錯誤,而是應該叫做:編譯錯誤。如果說真的是編譯器內部本身(例如:C語言編譯器、或者是別的各種編程語言的編譯器)出現了bug 的話,那麼任何人也沒有辦法。只有開發編譯器軟體的軟體開發人員才能夠解決這樣的問題;
如果是在你的源程序中產生的各種編譯錯誤(例如:語法錯誤、語義錯誤等),那麼你只能夠仔細地檢查、編譯、調試你的源程序了。
㈣ flash里的編譯器錯誤是什麼意思啊
當發生錯誤時,flash里的編譯器就會產生錯誤代碼,每個代碼代表不同的錯誤原因。
以下是不同錯誤代碼表示的錯誤原因:
1000 對 _ 的引用不明確。
1003 不允許將訪問說明符與命名空間屬性結合使用。
1004 找不到命名空間,或者命名空間不是編譯時常量。
1006 super 表達式只能在類實例方法的內部使用。
1007 super 語句只能在類實例構造函數的內部使用。
1008 屬性無效。
1010 override 屬性只能在類的屬性定義中使用。
1011 virtual 屬性只能在類的屬性定義中使用。
1012 static 屬性只能在類內部的定義中使用。
1013 private 屬性只能在類的屬性定義中使用。
1014 不再支持 intrinsic 屬性。 ActionScript 3.0 does not support the intrinsic keyword.
1016 基類為 final 類。 無法擴展超類,因為它標記為 final。
1017 找不到基類 _ 的定義。
1018 類的定義 _ 重復。
1020 標記為 override 的方法必須覆蓋其它方法。
1021 函數的定義重復。 在同一個范圍內,不能使用相同的標識符名稱聲明多個函數。
1022 不能覆蓋 final 存取器。
1023 覆蓋不兼容。
1024 覆蓋沒有標記為 override 的函數。
1025 不能重新定義 final 方法。 不能擴展該方法,因為它在基類中標記為 final。
1026 構造函數必須是實例方法。
1027 函數不能同時為 static 和 override 函數。
1028 函數不能同時為 static 和 virtual 函數。
1029 函數不能同時為 final 和 virtual 函數。
1030 必須指定變數參數數組的名稱。
1033 不支持 virtual 變數。
1034 變數不能是 native。
1035 變數不能同時為 final 和 virtual。
1037 不能嵌套包。
1038 找不到 break 語句的目標。
1039 找不到 continue 語句的目標。
1040 標簽的定義重復。
1041 屬性是不可調用的。
1042 this 關鍵字不能在 static 方法中使用。
1043 命名空間未定義。
1044 介面方法 _(屬於命名空間 _)未經類 _ 實現。
1045 找不到介面 _。
1046 找不到類型,或者類型不是編譯時常量 _。
1047 參數的初始值未知,或不是編譯時常量。
1048 方法不能用作構造函數。
1049 對指定為常量的變數的賦值非法。
1050 不能賦給非引用值。
1051 返回值必須是 undefined。
1052 常量的初始值未知,或不是編譯時常量。
1053 存取器類型必須匹配。
1054 setter 定義的返回類型必須是 unspecified 或 void。
1058 屬性是只寫的。
1059 屬性是只讀的。 此屬性通過 getter 函數定義,因此,可以檢索該屬性的值。
1061 調用可能未定義的方法 _(通過靜態類型為 _ 的引用來調用)。 所要調用的方法未定義。
1063 無法打開文件 _。
1064 元數據無效。 無法識別此元數據。
1065 元數據的屬性不能包含多個元素。
1067 將 _ 類型的值隱式強制為無關 _ 類型。
1068 無法打開包含的文件 _。
1069 語法錯誤:應有定義或指令。 Check the syntax in the line.
1071 語法錯誤:定義關鍵字(如 function)應在屬性 _ 之後,而不是 _ 之後。
1072 語法錯誤:命名空間之前應有 xml。 正確的語句語法是 default xml namespace = ns。
1073 語法錯誤:應有 catch 或 finally 子句。
1075 語法錯誤:如果沒有「in」運算符,則不允許使用「each」關鍵字。
1076 語法錯誤:標識符之前應有左括弧。
1077 應有 CaseLabel。 在 switch 塊中,編譯器此時應該執行 case 語句。
1078 標簽必須是一個簡單的標識符。
1079 super 表達式必須具有一個操作數。
1080 應有遞增或遞減運算符。
1082 括弧內應有一個表達式。
1083 語法錯誤:遇到意外的 _。 代碼行缺少某些信息。在下面的示例中,最後一個加號的後面必須帶有某個表達式。
1084 語法錯誤:應有 _(_ 之前)。 此處不需要該表達式。
1086 語法錯誤:_ 之前應有分號。
1087 語法錯誤:程序結束之後找到額外的字元。
1093 語法錯誤。
1094 語法錯誤:字元串文字必須在換行符之前終止。
1095 語法錯誤:字元串文字必須在換行符之前終止。
1097 語法錯誤:輸入已在到達字元串文字的右引號之前結束。
1099 語法錯誤。
1100 語法錯誤:XML 沒有匹配的開始和結束標簽。
1102 不能刪除超級後代。
1103 命名空間的定義重復。 已多次定義該命名空間。請刪除或修改重復的定義。
1105 賦值的目標必須是引用值。 可以給變數賦值,但是不能將一個值賦給另外一個值。
1106 遞增操作數必須是引用。 操作數必須是變數、數組中的元素或對象的屬性。
1107 遞增操作數無效。 操作數必須是變數、數組中的元素或對象的屬性。
1108 遞減操作數無效。 操作數必須是變數、數組中的元素或對象的屬性。
1109 應有表達式。 代碼的一部分缺少表達式。例如,下面的代碼會生成此錯誤(if 語句中缺少某項條件):
1110 缺少 XML 標簽名稱。
1112 可能會出現無限遞歸問題,因為此文件包含 _。
1113 在 _ 中檢測到循環類型引用。 類正在嘗試擴展超類。
1114 public 屬性只能在包的內部使用。
1115 internal 屬性只能在包的內部使用。
1116 用戶定義的命名空間屬性只能在頂級的類定義中使用。
1118 將靜態類型為 _ 的值隱式強制為可能無關的類型 _。
1119 訪問可能未定義的屬性 _(通過靜態類型為 _ 的引用來訪問)。
1121 getter 定義不能包含參數。
1122 setter 定義只能包含一個參數。
1123 setter 定義不能包含可選參數。
1124 getter 定義的返回類型不能為 void。 getter 函數模擬變數。
1125 介面中定義的方法不能包含方法體。
1126 函數沒有函數體。
1127 已多次指定屬性 _。 在同一語句中多次指定了某個屬性。
1129 介面的定義 _ 重復。 請更改或刪除重復的定義。
1130 構造函數不能指定返回類型。
1131 不能嵌套類。
1132 final 屬性只能在類中定義的方法內使用。
1133 native 屬性只能與函數定義結合使用。
1134 dynamic 屬性只能與類定義結合使用。
1135 語法錯誤:_ 不是有效類型。
1136 參數數目不正確。數目應為 _。 函數需要的參數數目與提供的參數數目不同。
1137 參數數目不正確。不應超過 _ 個。
1138 可選參數之後不允許有必需的參數。
1139 不允許在介面中聲明變數。
1140 如果參數是在 ...rest 參數定義關鍵字之後指定的,則只能是 Array 數據類型。
1141 一個類只能擴展另外一個類,而不能擴展介面。
1142 一個介面只能擴展另外一個介面,但 _ 是一個類。 正在試圖使用介面擴展類。
1143 override 屬性只能在類中定義的方法內使用。
1144 介面方法 _(屬於命名空間 _)使用類 _ 中不兼容的簽名進行實現。
1145 Native 方法不能包含方法體。 不能使用 native,因為它是一個保留關鍵字。
1146 構造函數不能是 getter 或 setter 方法。
1147 未指定 AS 源文件。
1149 return 語句不能在靜態初始化代碼中使用。
1150 protected 屬性只能在類的屬性定義中使用。
1151 定義 _(屬於命名空間 _)存在沖突。
1152 繼承的定義 _(屬於命名空間 _)存在沖突。
1153 只能將構造函數聲明為公共函數。
1154 只能在定義中指定 public、private、protected 或 internal 之一。
1155 不能在其它函數的內部嵌套存取器。
1156 不能使用新運算符實例化介面。
1157 介面成員不能聲明為 public、private、protected 或 internal。
1158 語法錯誤:函數體之前缺少左大括弧 ({)。
1159 return 語句不能在包的初始化代碼中使用。
1160 native 屬性不能在介面定義中使用。 不能使用 native,因為它是一個保留關鍵字。
1162 每個定義中只能使用一個命名空間屬性。
1163 方法 _ 與從介面 _ 繼承的定義沖突。
1165 介面屬性 _ 無效。
1166 Namespace declarations are not permitted in interfaces.
1167 類 _ 多次實現介面 _。 該類多次實現同一個介面。
1168 Illegal assignment to function _. 正在試圖重新定義函數。
1169 不允許在介面方法中使用命名空間屬性。
1170 函數沒有返回值。 如果返回類型不是 void,函數中每個可能的控制流都必須返回值。
1171 命名空間初始值必須是文字字元串或其它命名空間。
1172 找不到定義 _。
1173 標簽定義無效。
1176 將靜態類型為 _ 的值與可能無關的類型 _ 進行了比較。 在嚴格模式下會生成此錯誤。
1177 return 語句不能在全局初始化代碼中使用。
1178 嘗試訪問不可訪問的屬性 _(通過靜態類型為 _ 的引用)。
1180 調用可能未定義的方法 _。 僅當編譯器在嚴格模式下運行時,才會出現這種錯誤。
1181 轉發對基類 _ 的引用。
1182 包不能用作值 _。
1184 使用了類型 _ 的不兼容默認值,但是應為 _。
1185 switch 包含多個默認值,但是只能使用一個默認值。
1188 對類 _ 的賦值非法。
1189 試圖刪除固定屬性 _。只能刪除動態定義的屬性。 delete 會從對象中動態刪除定義的屬性。
1190 找不到基類,或基類不是編譯時常量。
1191 找不到介面,或介面不是編譯時常量。
1192 不允許在命名空間定義中使用 static 屬性。
1193 不能在類或其它介面定義中嵌套介面定義。
1194 prototype 屬性無效。
1195 試圖訪問不可訪問的方法 _(通過靜態類型為 _ 的引用)。
1196 語法錯誤:throw 之後應有表達式。
1197 類 _ 不能擴展 _,因為二者都與庫符號或主時間軸關聯。
1198 不允許在包的定義中使用屬性。
1199 內部錯誤:_。
1200 語法錯誤:for-in 初始值無效,只能有 1 個表達式。
1201 this、super、return 或 throw 語句之後不能出現 super 語句。
1202 訪問未定義的屬性 _(屬於包 _)。 正在試圖訪問包中未定義的變數。
1203 在基類 _ 中未找到默認構造函數。 如果有 1 個或多個必選參數,則必須使用 super() 語句顯式調用基類的構造函數。
1204 /* 無對應匹配項 */ . 發現了指示注釋開始位置的字元「/*」,但未發現指示注釋塊結束位置的對應字元「*/」。