上一篇 "WinCE 5.0 編譯時無法移動 temp 檔" 裡面有提到,小紅傘會導致 WinCE 5.0 編譯錯誤。實際上,在 WinCE 6.0 上也會有這種情況,而且網路上也有人提到只要是防毒軟體都可能會導致 WinCE 編譯錯誤,不一定只有小紅傘才會。
上一篇提到要將小紅傘關閉才能解決這個問題,在此紀錄另一個方式,不用關閉小紅傘,只要在小紅傘裡面設定一個 "例外" 即可。
在小紅傘的設定裡面,按照下圖設定一個 "例外":
failed moving temp file 'C:\WINCE500\PBWorkspaces\620aAPM\RelDir\EGNNA620aAPM_ARMV4I_Release\bin6872.tmp' to 'C:\WINCE500\PBWorkspaces\620aAPM\RelDir\EGNNA620aAPM_ARMV4I_Release\NK.bin': 5 Fatal error hit, exiting... makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec). makeimg: FATAL ERROR: Command returned non-zero exit code 1 (dec).我發現這是防毒軟體小紅傘所導致的,先把小紅傘關掉再編即可!
Step 4
<pre class="brush:cpp"> C++ 程式碼放在這裡!! </pre><pre> 與 </pre> 標籤之間放哪一種語言的程式碼,則 brush 就要設定對應的值。至於 SyntaxHighlighter 支援的 brush 到底有哪些,可以參考:
O'REILLY 書中有這樣的解釋:volatile 變數代表其所儲存的內容會不定時地被改變,宣告 volatile 變數用來告訴 Compiler 不要對該變數做任何最佳化操作,凡牽涉讀取該 volatile 變數的操作,保證會到該變數的實體位址讀取,而不會讀取 CPU 暫存器的內容 (目的是提升效能) 。舉個例子,某一硬體狀態暫存器 (Status Register) 就必須宣告 volatile 關鍵字,因為該狀態暫存器會隨時改變,宣告 volatile 便可確保每次讀取的內容都是最新的。
有 volatile 關鍵字宣告的 變數/物件,表示它可能會被其他執行中的程式或事件所修改。volatile 關鍵字告訴 Compiler 每次要用到此 變數/物件 的值時,即使程式本身並沒有修改到它的值,都要重新讀取!常用到 volatile 的情形有: