我需要获取
std
的 Haxe
文件夹的路径。
在 Linux 系统上它可以是 /usr/share/haxe/std
,在 Windows 上 - C:\HaxeToolkit\haxe\std\
。
有
haxelib config
、haxelib path
和 haxelib libpath
命令,但它们将我指向 /usr/local/lib/haxe/
文件夹。
如何在脚本中获取此路径?
我尝试了这些命令
haxelib config
、haxelib path
、haxelib libpath
,但它们仅在 Windows 上对我有帮助,因为在 Windows 上 std
和 lib
文件夹位于同一文件夹中。
Haxe 有一种方法可以做到这一点:
解决Std.hx:
class ResolveStd {
static macro function getStdPath() {
var evalDir = haxe.macro.Context.resolvePath("eval");
var stdDir = haxe.io.Path.directory(evalDir);
return macro $v{stdDir};
}
public static function main() {
Sys.println(getStdPath());
}
}
然后
haxe --run ResolveStd.hx
将会有类似的输出
C:\HaxeToolkit\haxe\std
(说明:我们要求编译器解析
eval
的路径,它是 std
中的子目录之一,然后向上一级)