Ⅰ 為什麼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\ 後面的東西要相同。
希望能幫助到你。
Ⅱ 為什麼編譯總是出錯
如果使用C的編譯器,應該是能編譯通過
因為C編譯器如果沒有寫明函數的返回值的話默認的函數返回值是int
如果使用C++的編譯器就編譯不過了
因為C++比C更嚴格了,不允許默認的int返回值
Ⅲ 程序編譯錯誤不知道是什麼原因
不能通編譯過的程序實際上還不是合法的程序,因為它不滿足C語言對於程序的基本要求。
檢查語法錯誤的第一要義:集中力量檢查系統發現的第一個錯誤,弄清並改正它。
在編譯過程中系統發現的錯誤主要有兩類:基本語法錯誤和上下文關系錯誤。這些錯誤都在表面上,可以直接看得見。也是比較容易弄清,比較容易解決的。關鍵是需要熟悉C語言的語法規定和有關上下文關系的規定,按照這些規定檢查程序正文,看看存在什麼問題。
編譯中系統發現錯誤都能指出錯誤的位置。不同系統在這方面的能力有差異,在錯誤定位的准確性方面有所不同。有的系統只能指明發現錯誤的行,有的系統還能夠指明行內位置。
一般說,系統指明的位置未必是真實錯誤出現的位置。通常情況是錯誤出現在前,而系統發現錯誤在後,因為它檢查到實際錯誤之後的某個地方,才能確認出了問題,因此報出錯誤信息。要確認第一個錯誤的原因,應該從系統指明的位置開始,在那裡檢查,並從那裡開始向前檢查。
系統的錯誤信息中都包含一段文字,說明它所認定的錯誤原因。應該仔細閱讀這段文字,通常它提供了有關錯誤的重要線索。但也應該理解,錯誤信息未必准確,有時錯誤確實存在,但系統對錯誤的解釋也可能不對。也就是說,在查找錯誤時,既要重視系統提供的錯誤信息,又不應為系統的錯誤信息所束縛。
發現了問題,要想清楚錯誤的真正原因,然後再修改。不要蠻干。在這時的最大誘惑就是想趕快改,看看錯誤會不會消失。但是蠻乾的結果常常是原來的錯誤沒有弄好,又搞出了新的錯誤。
另一個值得注意的地方:程序中的一個語法錯誤常常導致編譯系統產生許多錯誤信息。如果你改正了程序中一個或幾個錯誤,下面的弄不清楚了,那麼就應該重新編譯。改正一處常常能消去許多錯誤信息行。
解決語法錯誤
常見語法錯誤:
1)缺少語句、聲明、定義結束的分號。
2)某種括弧不配對。C語言中括弧性質的東西很多,列舉如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括弧不配對可能引起許多不同的錯誤信息。
3)關鍵字拼寫錯誤。
較難認定的典型錯誤:
1)宏定義造成的錯誤。這種東西不能在源程序文件中直接看到,是在宏替換之後出現的。常見的能引起語法錯誤的宏定義錯誤:宏定義中有不配對的括弧,宏定義最後加了不該有的分號,……
解決上下文關系錯誤
1)變數沒有定義。產生這個問題的原因除了變數確實沒有大意外,還可能是變數的拼寫錯誤,變數的作用域問題(在不能使用某個變數的地方想去用那個變數)。
2)變數重復定義。例如在同一個作用域里用同樣名字定義了兩個變數,函數的局部變數與參數重名等。
3)函數的重復定義。可能是用同一個名字定義了兩個不同的函數。或者是寫出的函數原型在類型上與該函數的定義不相符。有時沒有原型而直接寫函數調用也可能導致這種錯誤信息,因為編譯程序在遇到函數調用而沒有看到函數原型或函數定義時,將給函數假定一個默認原型。如果後來見到的函數定義與假定不符,就會報告函數重復定義錯誤。
4)變數類型與有關運算對運算對象或者函數對參數的要求不符。例如有些運算(如 %)要求整數參數,而你用的是某種浮點數。
5)有些類型之間不能互相轉換。例如你定義了一個結構變數,而後要用它給整數賦值。系統容許的轉換包括:數值類型之間的轉換,整數和指針之間的轉換,指針之間的轉換。其餘轉換(無論是隱含的,還是寫出強制)都不允許。參見《C語言程序設計》(K&R)197-199頁。
如何看待編譯警告
當編譯程序發現程序中某個地方有疑問,可能有問題時就會給出一個警告信息。警告信息可能意味著程序中隱含的大錯誤,也可能確實沒有問題。對於警告的正確處理方式應該是:盡可能地消除之。對於編譯程序給出的每個警告都應該仔細分析,看看是否真的有問題。只有那些確實無問題的警告才能放下不管。
注意:經驗表明,警告常常意味著嚴重的隱含錯誤。
常見警告:
1)(局部自動)變數沒有初始化就使用。如果對局部指針變數出現這種情況,後果不堪設想。對於一般局部自動變數,沒有初始化就使用它的值也不會是有意義的。
2)在條件語句或循環語句的條件中寫了賦值。大部分情況是誤將 == (等於判斷)寫成 = 了。這是很常見的程序錯誤,有些編譯程序對這種情況提出警告。
Ⅳ 為什麼靜態編譯一個程序的時候總是出錯
如果在編譯你的源程序的過程中,不是涉及到庫文件的鏈接的時候,一般的普通編譯是不會出錯的。出現該類錯誤一般都是你的源程序中使用的庫文件的路徑設置的不正確、或者是庫文件名錯誤等等,造成無法將你的源程序和你的編譯器中的靜態庫進行正確的鏈接。你再仔細檢查你的源程序、以及你的編譯中的選擇項。
Ⅳ visual c++ 6.0編譯時總有一個錯誤是怎麼回事
實際上這個問題很多情況下是由於路徑設置的問題引起的, 「CL.exe」是VC使用真正的編譯器(編譯程序),其路徑在「VC根目錄VC98Bin」下面, 你可以到相應的路徑下找到這個應用程序。
因此問題可以按照以下方法解決:
方法一:
打開vc界面 點擊VC「TOOLS(工具)」—>「Option(選擇)」 —>「Directories(目錄)」重新設置「Excutable Fils、Include Files、 Library Files、Source Files」的路徑。很多情況可能就一個盤符的不同 (例如你的VC裝在C,但是這些路徑全部在D),改過來就OK了。
如果你是按照初始路徑安裝vc6.0的,路徑應為: executatble files: C:Program FilesMicrosoft Visual StudioCommonMSDev98Bin C:Program FilesMicrosoft Visual StudioVC98BIN C:Program FilesMicrosoft Visual StudioCommonTOOLS C:Program FilesMicrosoft Visual StudioCommonTOOLSWINNT
include files: C:Program FilesMicrosoft Visual StudioVC98INCLUDE C:Program FilesMicrosoft Visual StudioVC98MFCINCLUDE C:Program FilesMicrosoft Visual StudioVC98ATLINCLUDE
library files: C:Program FilesMicrosoft Visual StudioVC98LIB C:Program FilesMicrosoft Visual StudioVC98MFCLIB
source files: C:Program FilesMicrosoft Visual StudioVC98MFCSRC C:Program FilesMicrosoft Visual StudioVC98MFCINCLUDE C:Program FilesMicrosoft Visual StudioVC98ATLINCLUDE C:Program FilesMicrosoft Visual StudioVC98CRTSRC
如果你裝在其他盤里,則仿照其路徑變通就行(我就是裝在D[來源:GameRes.com]盤)。 關鍵是microsoft visual studio 後面的東西要相同。 主義大小寫。
方法二:(這種較簡單)
最簡便的方法: 啟動VC時不要用圖形界面,通過在命令提示符下輸入:Msdev /useenv運行(注意啦/前面有個空格).它會強制使系統環境變數全高設置成正確值.而且,只需要使用一次這樣的方式運行VC,以後再次通過雙擊圖標的方式啟動也不會有問題.
第3種方法就是設置了一下路徑:D:Program FilesMicrosoft Visual Studio 8VCin(因為我裝的是2005,所以。。。)
追問:
都試過了,不行。。。
追答:
執行VC98BIN下的VCVARS32.BAT,設置環境變數
還不行的話 直接下載這個
http://www.xdowns.com/soft/38/121/2008/Soft_44195.html
Ⅵ 為什麼編譯老出錯,求大神賜教
請說詳細一點,你用的是什麼編譯器?或者是用什麼軟體寫的?
編譯老出錯的原因猜測大致如下:
1.發現錯誤的代碼,點擊編譯提示窗口的代碼行號,找出錯誤的代碼並修正;
2.編譯老出錯,是因為編譯器設置錯誤,或者是未注冊,破解版不穩定導致;
3.其它原因未知,卸載干凈重新安裝或者從其它的網站下載即可解決。
Ⅶ 為什麼編譯出錯
如果使用C的編譯器,應該是能編譯通過 因為C編譯器如果沒有寫明函數的返回值的話默認的函數返回值是int 如果使用C++的編譯器就編譯不過了 因為C++比C更嚴格了,不允許默認的int返回值
Ⅷ 為什麼編譯老是出錯。
#include <stdio.h>
int main()
{
int a,b,sum = 0;
a=123;
b=456;
sum = a+b;
printf("sum is %d\n「,sum);
return 0;
}
注意:1.根據題意sum要初始化為零才能得到正確求和結果。
2.每一條語句後面都要有";"
3.有些編譯器不支持main函數的返回類型為void,匯報錯的。
4.注意你的printf那句,少了一個』 「 『號。
望採納。。。
Ⅸ 編譯錯誤,怎麼回事
關於編譯問題,如果說是編譯錯誤發生在自己編寫源程序的過程中的話,那麼問題的原因還是比較復雜的。通常關於用戶編寫的源程序的編譯出錯問題,這是一個很復雜的問題。因為編譯錯誤有很多種。例如:語法錯誤、系統庫連接錯誤、語義錯誤、數組越界、或者內存越界等等。
通常語法錯誤是最好解決的,因為源程序的語法出錯了,連編譯這一關都通不過,並且會告訴你在哪一行出錯了,這時候是最容易調試程序的。最難調試的就是:源程序雖然編譯通過了,但是程序的運行結果卻是錯誤的,這種是最難調試的。所以說,你必須要把詳細的出錯信息寫出來,別人們才好幫助你進行分析。
Ⅹ 為什麼靜態編譯一個程序的時候總是出錯
1、首先易語言是需要破解才能靜態編譯的。
2、現在易語言最新版應該是5.4+版本了
3、網路搜索易語言5.4破解版下載安裝即可。
4、如果使用破解版還是無法編譯,那就是你的代碼有問題,檢查下代碼,看看是哪裡出的問題
5、你使用的代碼是很早之前的,現在的版本已經不支持了。
6、你的代碼里引用了模塊,請載入模塊後重新試試。
7、其他錯誤