除非我先删除文件,否则Compc(Actionscript库编译器)不会失败?

时间:2009-01-27 19:57:13

标签: flex flash actionscript mxml compc

以下是该场景:我在源目录上运行compc,以便在一些更改后重新编译已存在的库,并成功完成。然后我删除库(.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.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. pv3ddebug依赖的库A是正确的
  2. pv3ddebug编译成功(并且正确)
  3. 图书馆A进入了无法使用pv3ddebug
  4. 编译的状态
  5. pv3ddebug编译成功,错误,因为compc没有注意到A已更新为失败状态
  6. 删除pv3ddebug,然后重新编译导致compc尝试使用新的A进行编译,因此编译失败。
  7. 我的问题:第4步是个错误吗?这是我应该预期的缓存行为,还是可以通过编译器开关更改?我的理论有没有解释的事情?

1 个答案:

答案 0 :(得分:1)

您可以尝试-incremental = false。这应该是命令行编译器的默认设置,但是您所描述的内容听起来就像它已启用。