haxe - 导入我的开发 haxelib 时无法解析符号
问题描述
- 在 haxelib 项目文件夹中,我正在运行
haxelib dev cc_gfx .
. - 在导入项目文件夹中,
haxe build.hxml
.
我得到错误src/shader/Shader.hx:3: characters 7-19 : Type not found : gfx.Vector2f
。
build.hxml
:
-cp src
-lib cc_gfx
-main shader.Shader
-lua out/main.lua
haxelib.json
:
{
"name": "cc_gfx",
"license": "MIT",
"description": "Bindings to the gfx library for ComputerCraft.",
"version": "0.0.1",
"classPath": "src",
"releasenote": "Initial release.",
"contributors": ["James King"]
}
Shader.hx
:
package shader;
import gfx.Vector2f;
class Shader {
static public function main() {
var v = new Vector2f(1, 1);
}
}
Vector.hx
:
package gfx;
public class Vector2f {
var x : Float;
var y : Float;
Vector2f(x : Float, y : Float) {
this.x = x;
this.y = y;
}
}
解决方案
这实际上与 Haxelib 中的文件无关。
src/shader/Shader.hx:3:字符 8-20:找不到类型:gfx.Vector2f
import gfx.Vector2f;
试图导入一个不存在的模块Vector
,它实际上是命名的(因为文件名是Vector.hx
)。模块名不必与类名匹配,但是需要将导入调整为import gfx.Vector;
. 或者只是将文件名更改为Vector2f.hx
.
修复之后,编译器会再报两个错误,因为里面的代码Vector
有一些语法问题:
src/gfx/Vector.hx:3:字符 1-7:意外公开
Haxe 中public
的类型是默认的,因此public
不允许使用修饰符。在那之后:
src/gfx/Vector.hx:6:字符 5-13:意外的 Vector2f
这不是在 Haxe 中声明构造函数的方式。Vector2f(x:Float, y:Float)
应替换为public function new(x:Float, y:Float)
.
推荐阅读
- android - Firebase 深层链接:处理来自 2 个不同活动的相同意图
- r - 基于使用 R 过滤两个不同长度的数据帧创建列
- c++ - 用 const 成员替换一个类型的变量
- android - 我正在尝试运行 npx react-native run-android 但是有一个我不明白的错误,因为我的知识有限,请帮助,如果你能 thx
- android - Flutter 构建问题:Dart 快照生成器失败,退出代码为 -9
- string - 如何创建删除特定字符的方法(Ruby)
- scala - 既然 bintray 已经日落了,我该如何使用 mfglabs commons-aws-sqs 库来实现 scala
- google-apps-script - 使用基于时间的触发器传递函数参数
- powershell - 通过 shell 脚本在 windows 中导出/设置环境变量
- sql-server - 如何在 SQL Server Express LocalDB 中使用 GORM ORM for Golang?