編譯的時候文件已被編譯器修改
1. c語言編譯器會編譯改變過的代碼,而不會編譯沒有改動的代碼。 我想知道它是怎麼判斷程序是否有唄修改過的
編譯器要記錄你的編譯生成文件,比如obj、exe等的生成日期,發現與相關的文件如.c源文件、obj等日期舊時則選擇對此部分重新編譯。
特別地,它記錄所有相關文件,比如你新修改了某頭文件.h,編譯系統會逐一比較所有使用這個.h文件的編譯結果,如果發現時間舊了就重新編譯它們。
2. c-free編譯時出現文件所在的卷已被外部更改 因此打開的文件不再有效
例如
有一個c文件file.c,它的絕對路徑是d:\c\file.c
文件file.c在c-free中被打開;
然後我又在電腦中用記事本把file.c打開,並修改保存;
這樣你返回c-free中編輯時就會有這個警告
就是被在c-free中被打開的文件,又被另一個程序打開並修改了
3. keil顯示文件被外部編譯器改變是怎麼回事
那時因為你的文件在keil項目保存後,通過其他方式(如記事本、UE、sourcesight等其他編輯器打開)編輯後保存了後,然後在keil再次打開這個工程中的文件時,就會有這樣的提示,你可以選擇載入先前的文件(即就是你keil工程最好保存是的文件),也可以選擇載入現有文件(指你在通過其他編輯器修改保存後的文件)
我對keil 比較熟悉,呵呵
4. mfc程序中的res文件夾里的東西被改掉又改回去之後無法在編譯器里編譯resource了,怎麼辦
肯定是 resource.rc 在修改中導致格式不正確造成的。
最簡單的辦法是新建一個工程,生成一個新的.rc文件。
關閉VC,用文本編輯器同時打開這兩個.rc文件,對照著改一下。
5. visual studio寫完程序,編譯以後,再改程序,編譯器不編譯改過後的程序
寫完程序,啟動 後,
(不是編輯模式了,)studio先將代碼編譯過來,語句錯誤時就停止編譯生成並警告;
至到語言代碼的文件里沒有錯誤後,將所有代碼編譯轉化並保存;
然後運行保存的程序,開始調試,出錯後同樣停止運行,
然後你可以修改語言代碼的文件里的內容,如果沒保存關閉後會提示;
警告等級(哪些類型屬於錯誤,以及出錯後停止運行並警告還是忽略) 可以在項目屬性里設置,
生成exe 只有手動。
6. DEV-C++中c語言的文件編譯 的時候自動生成了一個makefile.win的文件而且編譯器在該文件中報錯。
這不是在make文件中報錯的,調試報錯信息需要從最開頭開始查看,你的main.c文件中有3個未定義的引用。分別是:initwindows、beginpaint、endpaint.還有一個指針沒有初始化指向了0x0地址。所以程序編譯被錯誤中斷了,沒有生成exe文件,所以make文件在執行exe文件時找不到目標。上面缺少的那些引用應該是用來繪制窗體的函數,應該是位於哪個系統頭文件中,你的代碼中應該是沒有添加相應的頭文件引用才導致上述問題的。另外,指針在使用之前一定要初始化,通過函數賦值以後一定要判斷是否賦值正確(一般判斷是否為NULL)
7. c語言!!編譯的時候出現這個提彈窗,makefile.win已經改變,是否重新從硬碟讀取。這是什麼
主要原因可能是:1.在編譯器外打開、載入或修改了所用文件。2.可能是引用或打開的路徑不正確。3.某些語法錯誤時引起編譯器對後面程序的錯誤解讀,報出錯誤的警報信息。
可以嘗試:1 關閉文件後重新,關閉編譯器後重新打開項目。2.關閉其他打開該文件的軟體或者編輯器 3.注釋掉新修改部分的代碼,排查錯誤。
8. 編譯的時候顯示「寫出編譯後的文件失敗」怎麼辦
這個是易語言編譯器的問題,多試很多次!不成功繼續!試100次內保准有一次是成功的!(只是你做不到)為什麼頻率需要那麼高?跟你說說原理吧,依我個人猜測這絕對跟殺軟有關,殺軟大多都是監視著桌面的一舉一動的,有新文件生成都會先去掃描一下,如果有危害會自動搞掉(易語言剛編譯的時候會生成一些文件,肉眼可能看不到,因為處理太快了,不過殺軟是更快的,只要一出威脅代碼之類都會幹掉或阻止干擾易語言編譯正常運作(當封裝為exe的時候就不行了,正如編譯失敗),所以只要你的速度快得過殺軟頻率過高殺軟也就放過了)
所以說解決方案:①關掉殺軟,②在桌面新建個文件夾然後往裡面編譯
9. 我想修改一個lua文件,但是是編譯後的,請問如何修改
這是因為你的反編譯器的版本和當初編譯那個Lua文件時的版本不一致。
你首先得知道你這個Lua文件是用哪個版本編譯的,再去找對應版本的Lua反編譯器。
什麼Lua文件值得你花精力去反編譯它啊?能自己搞就自己從頭搞吧。