2009-01-27 57 views
0

這裏是場景:我在源目錄上運行compc,在一些更改後重新編譯已經存在的庫,這些更改成功完成。然後我刪除庫(.swc文件)並重新編譯,這會導致很多錯誤。Compc(Actionscript庫編譯器)不會失敗,除非我先刪除文件?

在此期間沒有任何變化 - 顯然,這應該既成功兩次或兩次失敗。

libs/pv3ddebug $ compc -library-path+=.. -source-path=./src -compiler.optimize -include-sources+=./src -output ../pv3ddebug.swc 
Loading configuration file /Users/bill/flex_sdk_3/frameworks/flex-config.xml 
/Users/bill/lg/vision/libs/pv3ddebug.swc (152944 bytes) 

/libs/pv3ddebug $ rm ../pv3ddebug.swc 

/libs/pv3ddebug $ compc -library-path+=.. -source-path=./src -compiler.optimize -include-sources+=./src -output ../pv3ddebug.swc 
Loading configuration file /Users/bill/flex_sdk_3/frameworks/flex-config.xml 
/Users/bill/lg/vision/libs/pv3ddebug/src/com/phenomblue/pv3ddebug/PV3DDebug.as(45): col: 34 Error: Type was not found or was not a compile-time constant: AdvancedView. 

       public function PV3DDebug(view:AdvancedView) 
              ^
... more errors follow 

我想我已經找到了錯誤發生的原因,並且可以糾正它們,但是我擔心第一次編譯沒有失敗。

我有一個理論:

  1. 庫A,這pv3ddebug依賴,是正確的
  2. pv3ddebug成功編譯(並正確)
  3. 庫A被帶進會失敗的狀態用pv3ddebug編譯
  4. pv3ddebug編譯成功,不正確,因爲compc沒有注意到A被更新爲失敗狀態
  5. 刪除pv3ddebug然後重新編譯c自動compc嘗試編譯新的A,編譯失敗。

我的問題給你:是第4步的一個bug?這是我應該預料的緩存行爲,還是可以通過編譯器開關進行更改?有沒有什麼事情我的理論沒有解釋?

回答

1

您可以嘗試-incremental = false。這應該是命令行編譯器的默認設置,但是您所描述的內容聽起來像是已啓用。

+0

該錯誤已被修復,但有點實驗表明這應該像魅力一樣工作!榮譽,並非常感謝你。我十多次查看了這個參數列表,卻沒有看到那個開關。 – llimllib 2009-01-28 16:54:18