gpt4 book ai didi

compiler-errors - 将类转换为 haxelib 后的 "Type not found"

转载 作者:行者123 更新时间:2023-12-04 07:10:38 25 4
gpt4 key购买 nike

TL;DR:在我的项目目录之外,使用 haxelib dev 安装, 并包含在 Project.xml 中与任何其他库一样,Haxe 编译器看不到我的库。在我的项目目录中,它工作正常。显然其他库不必位于我的项目目录中以避免编译器错误,那么我在这里缺少什么?

我正在尝试通过关注 this page 将一些代码作为 haxelib 发布.

我最初的包命名空间是 flixel.addons .该代码作为另一个项目的一部分,位于其 source/flixel/addons 下。子目录。在我开始之前,它是编译好的项目的一部分。

我决定在发布的时候最好不要侵犯别人的命名空间,所以我把命名空间改成了mynamespacepackage 上我的类(class)文件的行。我查看了另一个 haxelib 的想法,发现库名称可以与类路径不同,这可能应该与包命名空间相同。所以我将代码从我的项目中移出,移到其他地方的新目录中:

mylibraryname
\-Readme.md
\-haxelib.json
\-mynamespace
\-myclass.hx

根据说明,我运行了 haxelib devmylibraryname 的路径.

在我的项目中,我添加了 <haxelib name="mylibraryname" />到 Project.xml。在我使用它的地方,我更改了 import来自 flixel.addons.myclass 的行至 mynamespace.myclass .

现在,尝试编译我的项目(在 FlashDevelop 中,使用 Haxe 3.2.1)出现错误,Type not found: mynamespace.myclassimport 上使用它的行。具有讽刺意味的是,当光标位于 myclass 上时,FlashDevelop 会自动添加该行并按下 Ctrl+Shift+1。它在哪里使用。此外,我可以在 import 的红色下划线部分按 F4。行,然后打开 myclass.hx从它的新位置就好了。

该文件包含:

package mynamespace;

我使用它的项目文件包含:

import mynamespace.myclass;

同时,haxelib.json 文件有:

{
"name": "mylibraryname",
"url" : "...",
"license": "MIT",
"tags": ["haxe"],
"description": "...",
"version": "0.0.1-alpha",
"classPath": "mynamespace/",
"releasenote": "...",
"contributors": ["me"],
"dependencies": {
...
}
}

我尝试过的事情:

  1. 虽然我认为此时它应该可以正常工作,但我还是尝试了下一步,即创建一个 zip 文件并使用 haxelib install在上面。没有变化。

  2. 我也碰巧还有一个目录mynamespace在我的项目中,但我真的不再需要任何东西了,所以我删除了它。没有变化。

  3. 为了确保某处没有拼写错误,我随手复制了一份 mylibraryname目录(已正确安装在 ...\haxe\lib\mylibraryname\0.0.1-alpha 中,并制作了一个 .current 文件,里面有 0.0.1-alpha,顺便说一句)回到我的项目中。它编译得很好。

  4. 尽管文档中没有提及,但我看到另一个库包含一个文件 haxelib.xml旁边haxelib.json , 包含 this .有或没有这个文件存在,没有变化。 (甚至没有代码完成,它可以很好地列出我的类的唯一和继承变量,但在编译期间在输出 Pane 中生成完全相同的 Type not found 错误。)

  5. haxelib selfupdate .已经是最新的了。没有变化。

  6. Windows 重新启动!为什么不?没有变化。

如何编译我的项目?为什么 Haxe 看不到它而 FlashDevelop 和 haxelib 看得到,而我的库的目录结构和 haxelib.json是在第三方 haxelibs 和文档之后建模的吗?

还是我误解了什么,您必须在项目上下文中测试 haxelib,直到它们真正发布?如果是这种情况,我不确定应该用 haxelib dev 做什么和 haxelib install mylib.zip步骤。

最佳答案

问题应该是haxelib.json中的classPath指令。

它的值应该是根/基础包中模块的相对搜索路径,而不是你的包的路径。

尝试将其更改为 "" 或完全省略该指令。

关于compiler-errors - 将类转换为 haxelib 后的 "Type not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35211755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com