使用 --运行 和 --macro include 解析和实例化非导入包

resolving and instantiating non imported packages with --run and --macro include

我一直在使用 --运行 命令,并且一直在尝试包含一些包 当 运行 设置它时,使用 --macro include 像这样:

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(StringTools.replace(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,正如预期的那样 --运行(有一个小的代码更改以适应 '-D nape.geom。 Vec2' for interp), 但 resolveClass 始终 returns null,所以我无法将它传递给 creatInstance 而不会出错。

我使用的是 haxe 3.4.2 稳定版

我做错了什么?使用--运行 命令或--interp 命令是否可行?

我真的很喜欢关于其中一些功能的更完整的文档

'include' 宏包含一个包,而不是 class。

适用于:

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

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

好的,所以我通过链接我需要的个人 类 并禁用死代码消除(如 Jonas Malaco 上面的建议)

使用原始 post 中的代码和此构建命令:

haxe -lib nape nape.geom.Vec2 -dce no --run Main 'nape.geom.Vec2'