我一直在使用--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(通过一个小的代码更改来容纳' -d nape.geom.Vec2' for interp),但是resolveClass总是如此返回null,所以我不能将它传递给creatInstance而没有错误。
我使用的是haxe 3.4.2 stable
我做错了什么?这可以使用--run命令或--interp命令吗?
我真的非常喜欢其中一些功能的更完整的文档
答案 0 :(得分:1)
'include'宏包含一个包,而不是一个类。
适用于:
haxe -lib nape --macro include('nape.geom') --run Main 'nape.geom.Vec2'
答案 1 :(得分:0)
好吧,所以我通过链接所需的各个类并禁用无效代码消除(如乔纳斯·马拉科(Jonas Malaco)的建议)来使其正常工作
使用原始文章中的代码以及此构建命令:
haxe -lib nape nape.geom.Vec2 -dce no --run Main 'nape.geom.Vec2'