Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macros 使用--run和--macro include解析和实例化未导入的包_Macros_Haxe - Fatal编程技术网

Macros 使用--run和--macro include解析和实例化未导入的包

Macros 使用--run和--macro include解析和实例化未导入的包,macros,haxe,Macros,Haxe,我一直在使用-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())

我一直在使用-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(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,并对-run进行小的代码更改,以适应interp的“-D nape.geom.Vec2”,但resolveClass始终返回null,因此我无法将其传递给creatInstance而不出错

我使用的是haxe3.4.2

我做错了什么?使用-run命令或-interp命令可以这样做吗


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

宏“include”包含一个包,而不是一个类

它与:

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

请参见

好的,我通过链接我需要的各个类,并按照Jonas Malaco的建议禁用死代码消除,使它工作起来

使用原始帖子中的代码和此build命令:


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

运行该命令时,类类型仍然返回null。有什么想法吗?也许是ediblebird?也许使用-D dce debug编译会产生一些有用的信息。对于单个类,您也可以直接将它们包含在命令行/build.hxml中:haxe-lib nape nape.geom.Vec2-运行Main'nape.geom.Vec2',直接包含单个类并添加-dce no似乎就可以了!