2017-03-22 32 views
0

我也张贴在haxelang这个问题here解析和实例化与非--run进口包和--macro包括

我使用--run命令是,而且一直在努力,包括一些包 运行它的时候,使用--macro包括这样的:

haxe -lib nape --macro include('nape.geom.Vec2') --run Main 'nape.geom.Vec2' 

然后用Type.resolve这样我就可以Type.createInstance实例化它们像这样:

class Main 
{ 
    static function main() 
    { 
    trace("hello", Sys.args()); 
    var c = Type.resolveClass(Sys.args()[0]); 
    trace(c); 
    Type.createInstance(c, []); 
    } 
} 

我也试着用这个命令使用--interp:

haxe -lib nape --macro include('nape.geom.Vec2') -main Main --interp -D nape.geom.Vec2 

他们都跑,跟踪和接收Sys.args如预期--run(用小代码更改,以适应“ - D nape.geom.Vec2'for interp),但resolveClass总是返回null,所以我不能将它传递给creatInstance而没有错误。

我正在使用haxe 3.4.2稳定

我在做什么错?这可能与--run命令或--interp命令?

编号真的很喜欢一些更完整的文档上的一些功能

回答

1

的“包括”宏包含一个包,而不是一个类。

它适用于:

haxe -lib nape --macro include('nape.geom') --run Main 'nape.geom.Vec2' 

http://api.haxe.org/haxe/macro/Compiler.html#include

+0

运行该命令,它仍然返回null为类类型。有任何想法吗? – ediblebird

+0

@ediblebird,[dead code elimination](https://haxe.org/manual/cr-dce.html)或许?也许用'-D dce-debug'编译产生一些有用的信息。对于单个类,您也可以直接将它们包含在命令行/ build.hxml中:'haxe -lib nape nape.geom.Vec2 --run Main'nape.geom.Vec2'' –