導航:首頁 > 源碼編譯 > 工程報錯會引起代碼不自動編譯嗎

工程報錯會引起代碼不自動編譯嗎

發布時間:2022-04-26 10:05:07

1. python項目代碼變更後一定要重新編譯

一般的時候,你直接用py文件執行就可以了,python會自動編譯一些必要的文件。
另外目前py不同的位元組碼是變動的,也就是說不同版本的位元組碼還是不兼容,做不動一次編譯到處執行。
如果你現在三個文件 main.py, a.py, b.py
其中main是入口,而且在main中有import a.py 和import b.py
那麼只會生成a.pyc,b.pyc,而不會生成main.pyc
出發你自己用python中的compile命令編譯main.py
以上

2. jsp的java代碼不能編譯,控制器沒報錯,怎麼解決

jsp的java代碼有錯是不會再控制器報錯的,你要輸出jsp中每個java變數的值,就可以看到問題了。詳細看這個鏈接,關於jsp調試的,就用鏈接上第一個方法就可以了網頁鏈接

3. myeclipse調試java代碼,運行報錯後,編譯生成的class文件再不會更新,求指點

重啟一你的 debug 程序就可以了,正常編譯成功,在 ecclipse 中的代碼熱替換是立即起作用,不用重新啟動 tomcat 之類的伺服器,但是有些情況是不能正常工作的,比如,刪除或修改了方法簽名,另外新增靜態欄位它的值總是默認值。重啟調試的程序就可以正常了,這只是代碼熱替換或者說是 ClassLoader 無法實現的功能。

4. doc下運行程序錯誤,java不能編譯。代碼如下,doc錯誤信息如下。哪個大蝦能解決哇。

java是區分大小寫的
你的類名是Test 但是你編譯的時候寫的是 javac test 就不對了
另外還要保證,你這個類Test 所在的文件名必須是 Test.java

5. c#中,我在編譯程序時,而其它文件夾里的代碼會報錯這樣以來我就是不能編譯咯 求解,謝謝!

對的,只要在CS文件中有一個地方出現問題,你均會編譯不通過,這是因為.NET平台在進行編譯時,會對每一個頁面的代碼進行語法檢查。

6. 程序編譯錯誤不知道是什麼原因

不能通編譯過的程序實際上還不是合法的程序,因為它不滿足C語言對於程序的基本要求。

檢查語法錯誤的第一要義:集中力量檢查系統發現的第一個錯誤,弄清並改正它。

在編譯過程中系統發現的錯誤主要有兩類:基本語法錯誤和上下文關系錯誤。這些錯誤都在表面上,可以直接看得見。也是比較容易弄清,比較容易解決的。關鍵是需要熟悉C語言的語法規定和有關上下文關系的規定,按照這些規定檢查程序正文,看看存在什麼問題。

編譯中系統發現錯誤都能指出錯誤的位置。不同系統在這方面的能力有差異,在錯誤定位的准確性方面有所不同。有的系統只能指明發現錯誤的行,有的系統還能夠指明行內位置。

一般說,系統指明的位置未必是真實錯誤出現的位置。通常情況是錯誤出現在前,而系統發現錯誤在後,因為它檢查到實際錯誤之後的某個地方,才能確認出了問題,因此報出錯誤信息。要確認第一個錯誤的原因,應該從系統指明的位置開始,在那裡檢查,並從那裡開始向前檢查。

系統的錯誤信息中都包含一段文字,說明它所認定的錯誤原因。應該仔細閱讀這段文字,通常它提供了有關錯誤的重要線索。但也應該理解,錯誤信息未必准確,有時錯誤確實存在,但系統對錯誤的解釋也可能不對。也就是說,在查找錯誤時,既要重視系統提供的錯誤信息,又不應為系統的錯誤信息所束縛。

發現了問題,要想清楚錯誤的真正原因,然後再修改。不要蠻干。在這時的最大誘惑就是想趕快改,看看錯誤會不會消失。但是蠻乾的結果常常是原來的錯誤沒有弄好,又搞出了新的錯誤。

另一個值得注意的地方:程序中的一個語法錯誤常常導致編譯系統產生許多錯誤信息。如果你改正了程序中一個或幾個錯誤,下面的弄不清楚了,那麼就應該重新編譯。改正一處常常能消去許多錯誤信息行。

解決語法錯誤

常見語法錯誤:

1)缺少語句、聲明、定義結束的分號。

2)某種括弧不配對。C語言中括弧性質的東西很多,列舉如下:
( ), [ ], { }, ' ', " ", /* */
在不同位置的括弧不配對可能引起許多不同的錯誤信息。

3)關鍵字拼寫錯誤。

較難認定的典型錯誤:

1)宏定義造成的錯誤。這種東西不能在源程序文件中直接看到,是在宏替換之後出現的。常見的能引起語法錯誤的宏定義錯誤:宏定義中有不配對的括弧,宏定義最後加了不該有的分號,……

解決上下文關系錯誤

1)變數沒有定義。產生這個問題的原因除了變數確實沒有大意外,還可能是變數的拼寫錯誤,變數的作用域問題(在不能使用某個變數的地方想去用那個變數)。

2)變數重復定義。例如在同一個作用域里用同樣名字定義了兩個變數,函數的局部變數與參數重名等。

3)函數的重復定義。可能是用同一個名字定義了兩個不同的函數。或者是寫出的函數原型在類型上與該函數的定義不相符。有時沒有原型而直接寫函數調用也可能導致這種錯誤信息,因為編譯程序在遇到函數調用而沒有看到函數原型或函數定義時,將給函數假定一個默認原型。如果後來見到的函數定義與假定不符,就會報告函數重復定義錯誤。

4)變數類型與有關運算對運算對象或者函數對參數的要求不符。例如有些運算(如 %)要求整數參數,而你用的是某種浮點數。

5)有些類型之間不能互相轉換。例如你定義了一個結構變數,而後要用它給整數賦值。系統容許的轉換包括:數值類型之間的轉換,整數和指針之間的轉換,指針之間的轉換。其餘轉換(無論是隱含的,還是寫出強制)都不允許。參見《C語言程序設計》(K&R)197-199頁。

如何看待編譯警告

當編譯程序發現程序中某個地方有疑問,可能有問題時就會給出一個警告信息。警告信息可能意味著程序中隱含的大錯誤,也可能確實沒有問題。對於警告的正確處理方式應該是:盡可能地消除之。對於編譯程序給出的每個警告都應該仔細分析,看看是否真的有問題。只有那些確實無問題的警告才能放下不管。

注意:經驗表明,警告常常意味著嚴重的隱含錯誤。

常見警告:

1)(局部自動)變數沒有初始化就使用。如果對局部指針變數出現這種情況,後果不堪設想。對於一般局部自動變數,沒有初始化就使用它的值也不會是有意義的。

2)在條件語句或循環語句的條件中寫了賦值。大部分情況是誤將 == (等於判斷)寫成 = 了。這是很常見的程序錯誤,有些編譯程序對這種情況提出警告。

7. androidstudio 不自動編譯

在 Android Studio使用教程(一)中簡要介紹了Android Studio的基本使用,包括安裝、新建工程、工程結構以及主題設置。今天接著講第二篇,主要包括如下內容: 從Eclipse導入工程到Android Studio Eclipse工程與Android Studio的區別 真機運行以及常用快捷鍵 需要重申一下,我所有的操作與版本是基於Mac系統,在Windows上的同學基本類似(作為一個技術人員,這些應該都不是問題大笑),下面就分主題開始吧: 一、從Eclipse導入工程到Android Studio 根據官方的介紹,Android Studio可以兼容Eclipse的現有工程,但需要做一些操作: 首先升級ADT到最新版本,目前為版本號為22(注意和ADT相關的組件最好一並升級,避免後期可能出現的錯誤) 選擇需要從Eclipse導出的工程,右鍵選擇Export並選擇Android下的Generate Gradle Build Files(如下圖): 選擇完畢後並不會導出到其他地方,而是在本地工程生成了一個build.gradle文件,在Eclipse工程中也可以看到,這個文件是Android Studio識別的,如下圖: 3.隨後進入Android Studio並選擇Import Project,可以看到剛剛在Eclipse中的項目圖標變成了一個Android機器人圖標,說明轉換成功,這時候選擇工程導入即可: 至此,就完成了從Eclipse導入現有Android工程到Android Studio,現在可以開始對工程進行操作了! 二、Eclipse工程與Android Studio的區別 Eclipse工程可以導入Android Studio運行,而反過來在Android Studio建立的工程不能在Eclipse中運行; 二者的工程結構不一樣,在Eclipse中一個Project就代表一個項目工程,而在Android Studio中就和Intellij一樣,一個Project代表一個工作空間,相當於Eclipse中的workspace,而在Android Studio中一個Mole就相當於Eclipse中的一個Project,這個概念需要弄明白,不要混了或覺得糊塗了。 在編輯操作上,在Eclipse中編輯修改後必須手動command+s保存文件,而在Android Studio中就和Intellij一樣是自動保存的,這一點和第二點和Xcode也是類似的。 工程目錄上的區別,在Eclipse中src部分一般是java文件,res部分是資源文件,包括布局文件和多媒體資源等。在Android Studio中,可以看下圖的目錄結構: 包括java文件和資源文件全部放到了src目錄下,src目錄下包括一個main文件夾,再下面就是java文件夾和res文件夾,其實這里,java文件夾就相當於Eclipse中的src,res還是那個res,這里想起了本山老師的小品「src已經不是那個src了,res還是那個res」大笑 三、真機運行以及常用快捷鍵 在Android Studio中點擊界面下方的Android選項卡可以看到Device信息和Logcat,連上設備後打開Android選項卡會檢測真機,成功後會顯示在Device中,點擊頂部的綠色小箭頭就可以開始運行工程了。有一點需要注意的是,運行時可以選擇模擬器也可以選擇真機,由於在Android Studio中運行工程的時候有一個Device優先順序選擇,如果不設置的話可能會出現只運行在模擬器上的現象,我們可以自行設置一下:先點擊Run菜單選擇Run Configuration,並選擇你想選擇的目標設備,可以是模擬器和真機,也可以在運行選由用戶選擇: 快捷鍵大家可以對照官方文檔進行熟悉,如下表,也可以自己修改配置選項進行自定義: 個人覺得Android Studio還是有一定的前景的,這里就需要Google不斷進行完善和改進了,趕緊把大家從Eclipse中解救出來吧。另外,在此期間,大家其實可以嘗試使用一下Intellij IDEA,這個默認也是集成Android開發環境的。Android Studio是基於前者改進而來,二者在使用上差不多,也是Eclipse的一個不錯的替代者。

8. eclipse自動編譯問題

這兩天eclipse 突然不能自動編譯了,無論怎麼更改保存, classes目錄下都是空的.
在網上找了很多文章,總結如下:
1. 確保 project->build automatically 已經被選上.
2. 如果選上了,也不好使, 使用這一招: project->clean..->選第2個clean select project, 勾上start build immediatelly
3.刪除現在的項目,提前設置好編譯文件輸出路徑,重新導入源文件,設置eclipse為保存時編譯,然後在保存的時候就可以自動編譯了
4.如果項目里引了某個不用的jar包,而那個包又被你刪了,就會出現不報錯但怎麼也編譯不出來class文件的情況。Project-->properties-->Java Build Path-->Libraries,可以把所有包都刪除,然後一個一個的再引入(需要的),不要一下子把所有包都引入來,沒用的可能會引起不良後果。也可以把有問題的包(會有提示)直接remove掉即可。
5. 想刪掉某個class文件重新生成,刪除class文件後,但classes目錄下的文件夾被其它程序打 開,比如Total Commander。此時編譯也不會通過,在problems下可能會提示「con't delete classes ……」。關掉其它程序重新編譯即可。
6.還有種情況是remove掉 JRE System Library,重新導入即可編譯。但是什麼原因導致的還不清楚。
7.把build path中所有包都remove掉。然後又add jars,add libraries把需要的加進去,居然又開始編譯了。。。
8.project->properties->java build path->source->.../WEB-INF/src的output folder不要默認,編輯讓它指向../WEB-INF/classes
然後重新點擊build工程即可自動編譯。
9.再就是最重要的要看工程下面是否缺少了work目錄,由於CVS控制時不把work加如版本,所以checkout後沒有這個目錄,要手工加上有的工程就能自動編譯了

最開始的時候,我只找到了前面7個方法,但是他們都沒有解決我的問題.無意中我打開了"Problems"標簽,發現裡面說缺少work目錄,手工加上,然後刷新項目就可以了.
最後兩個是我在寫這個總結的時候發現的.特別是第九條,對使用CVS進行版本控制的項目比較有用.

閱讀全文

與工程報錯會引起代碼不自動編譯嗎相關的資料

熱點內容
發信如何設置伺服器 瀏覽:77
源代碼查詢加密數字 瀏覽:605
附帶編譯 瀏覽:108
海康螢石雲app怎麼回放 瀏覽:404
寫一個編譯器怎麼寫 瀏覽:283
單片機蜂鳴器發聲原理 瀏覽:137
程序員那麼可愛陸離跳水是哪集 瀏覽:17
如何製作cdn伺服器 瀏覽:110
寫java加密程序 瀏覽:659
菜鳥數據分析pdf 瀏覽:291
單片機做實用東西 瀏覽:651
我的世界最強斗羅伺服器怎麼覺醒武魂 瀏覽:931
密友圈app怎麼切換用戶登錄 瀏覽:217
我把程序員當愛豆追 瀏覽:978
android判斷電話接通 瀏覽:646
大孔文件夾 瀏覽:785
反詐騙app在哪裡下載 瀏覽:527
軍工程序員面試視頻 瀏覽:813
質心演算法原理 瀏覽:423
163smtpphp 瀏覽:669