美文网首页
(1)Haxe编程语言是什么?

(1)Haxe编程语言是什么?

作者: 遨游于学海 | 来源:发表于2023-06-12 13:24 被阅读0次

    首先,Haxe是一种编程语言,它可以将代码编译为很多语言,比如说C++、JS、PHP等。Haxe代码的后缀名一般是.hx。在官网上下载之后安装就会有两个主要的程序:haxe用来编译Haxe代码,haxelib是Haxe的包管理工具。另外Haxe还可以以解释方式运行,例如

    haxe --run Main.hx
    

    就可以运行Main.hx
    还有一个推荐工具,当然这个是可选的,需要额外安装,叫做HashLink,它是一个Haxe虚拟机,可以运行Haxe字节码,使用haxe --hl out.hl可以生成Haxe字节码。
    要将Haxe代码编译到相应的语言,就需要安装相应的包。
    例如,要编译到C++,就要

    haxelib install hxcpp
    

    要编译到NodeJS,就要

    haxelib install hxnodejs
    

    Haxe入门

    首先,Haxe是面向对象的,类名必须和文件名相同,这里我们就取名叫做Main.hx了,当然也可以取其它名字,只要类名和文件名相同即可。
    在该文件中写入

    class Main{
      static function main(){
        Sys.println("Hello,123");
      }
    }
    

    然后再运行

    haxe --run Main.hx
    

    这样就可以以解释的方式运行上述代码。
    接着,我们来看代码,
    首先定义了一个叫做Main的类,里面有个main()函数,显然这是Haxe程序的入口。所有的Haxe程序都从这个函数开始运行。
    在主函数里面,很明显是调用了输出函数,这个输出函数是在Sys里面的。
    这个Sys是在标准库中的一部分,标准库中还有很多其它的。
    在Haxe中,标准库大概可以分为三类,一类是Haxe,可以在所有导出目标(要编译为的语言)中可用,一类是Sys,仅能在能够和操作系统交互的导出目标中可用,意思就是说导出为浏览器js时不能用,但其它的可以用,当然导出为NodeJS也是可以用;还有一类是仅能在特定语言使用的,可以通过宏之类的来判断当前编译的导出目标语言。

    编译

    如果要编译为C++,可以这么写

    haxe --main Main.hx --cpp ./cpp
    

    上面的--main指定主类,--cpp指定编译为C++并输出到cpp目录中。然后再cpp目录中,我们看到生成了可以运行的程序。
    编译为HashLink字节码:

    haxe --main Main.hx --hl out.hl
    

    前面是一样的指定主类,后面就是使用--hl参数指定生成为HashLink字节码,一般而言HashLink字节码的后缀名是.hl
    通过HashLink程序(也就是解压后目录中的hl),就可以运行HashLink字节码了:

    hl out.hl
    

    关于HashLink的一些说明

    HashLink支持两种模式,一种是编译为HashLink字节码(称之为HashLink/JIT),这种方式编译比较快,但运行比较慢,还有一种是编译为C(称之为HashLink/C),这种方式编译比较慢,但运行比较快,所以根据官方文档所述,前面一种模式适合开发用,后面一种比较适合用于生成最终的程序。
    生成HashLink/C需要额外安装hashlink库,代码如下:

    haxelib git hashlink https://github.com/HaxeFoundation/hashlink.git master other/haxelib/
    

    虽然也可以通过

    haxelib install hashlink
    

    来安装,但这样安装的版本可能比较旧,因此推荐上面那种方式。
    生成C代码:

    haxe --main Main --hl ./cpp/main.c
    

    这样就会在cpp目录中生成C,当然最终需要自己编译C代码。
    另外可以通过类似这样的方式生成Visual Studio解决方案文件:

    haxe --main Main --hl ./cpp/main.c -D hlgen.makefile=vs2017
    

    Visual Studio Code 相关

    在Visual Studio Code 扩展市场中,有Haxe的语法提示等插件,非常方便,还有HashLink调试器,方便使用VSC和HashLink等来进行调试。

    构建脚本

    构建脚本以.hxml作为后缀名,里面可以写编译时需要的各种参数,这样就没必要每次都写一遍了,然后运行:

    haxe xxx.hxml
    

    就可以根据该构建脚本编译了。
    hxml文件样例:

    --main Main.hx
    --lib hxcpp
    --cpp ./cpp
    

    上面就是说主类是Main,需要用到hxcpp库,生成为C++,放到cpp目录。

    相关文章

      网友评论

          本文标题:(1)Haxe编程语言是什么?

          本文链接:https://www.haomeiwen.com/subject/ynqqydtx.html