美文网首页
(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目录。

相关文章

  • HTML学习理解 2019_01_21

    -HTML 是什么?是编程语言吗? “HTML是超文本标记语言,它不是编程语言。” - HTML 的作用是什么? ...

  • HTML学习总结

    1:HTML 是什么?是编程语言吗? HTML是超文本标记语言,是HyperText Markup Lan...

  • OpenGL专业名词解析

    1.OpenGL是什么 OpenGL(Open Graphics Library)是一个跨编程语言、跨平台的编程图...

  • Chapter 1 对象导论

    编程语言是什么? “编程语言”首先是一种语言。 那么,语言是什么?这是个很大也很难的问题,只敢尝试着说明一下。 想...

  • GO语言——入门(1)

    一、初识GO语言 1.GO语言介绍 1.1 GO语言是什么 2009年11月10日,GO语言正式成为开源编程语言家...

  • CSS初步认识 2019-01-22

    - CSS是什么?是编程语言吗? “CSS是层叠样式表;不是编程语言。” - CSS的作用是什么? “CSS的作用...

  • 认识Scratch

    ● Scratch是什么? Scratch是一门编程语言。Scratch与传统的编程语言如Java、Python、...

  • 师书说阅读练习201《万物发明指南》

    书面语言之后是什么语言?编程语言?再之后呢? 从思想,到口语到书面语再到编程语言,发展趋势是什么? 2022年五月...

  • 不可不知的反汇编相关知识

    编程语言相关 我们都知道编程语言有好几代,那他们都是什么 第一代语言 最低级的语言,一般有0和1组成,人很难讲指令...

  • 简单几点让你快速了解python是什么

    1.python是什么 python是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一...

网友评论

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

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