Compiler errors &引用;“找不到类型”;将类转换为haxelib之后
TL;DR:在我的项目目录之外,与Compiler errors &引用;“找不到类型”;将类转换为haxelib之后,compiler-errors,namespaces,package,haxe,haxelib,Compiler Errors,Namespaces,Package,Haxe,Haxelib,TL;DR:在我的项目目录之外,与haxelib dev一起安装,并包含在project.xml中,与任何其他库一样,Haxe编译器看不到我的库。在我的项目目录中,它运行良好。显然,其他库不必在我的项目目录中以避免编译器错误,那么我在这里缺少什么呢 我试图通过以下方式发布一些haxelib代码 我最初的包名称空间是flixel.addons。代码是另一个项目的一部分,位于其source/flixel/addons子目录下。在我开始之前,这个项目是我的一部分 我决定在发布它时最好不要侵入其他人的名
haxelib dev
一起安装,并包含在project.xml
中,与任何其他库一样,Haxe编译器看不到我的库。在我的项目目录中,它运行良好。显然,其他库不必在我的项目目录中以避免编译器错误,那么我在这里缺少什么呢
我试图通过以下方式发布一些haxelib代码
我最初的包名称空间是flixel.addons
。代码是另一个项目的一部分,位于其source/flixel/addons
子目录下。在我开始之前,这个项目是我的一部分
我决定在发布它时最好不要侵入其他人的名称空间,所以我在类文件的包
行中将名称空间更改为mynamespace
。我查看了另一个haxelib的想法,发现库名称可以不同于类路径,类路径可能应该与包名称空间相同。因此,我将代码从我的项目中移到其他地方的一个新目录中:
mylibraryname
\-Readme.md
\-haxelib.json
\-mynamespace
\-myclass.hx
按照说明,我运行了haxelib dev
,路径是mylibraryname
在我的项目中,我将
添加到project.xml。在我使用它的地方,我将import
行从flixel.addons.myclass
更改为mynamespace.myclass
现在,尝试编译我的项目(在FlashDevelop中,使用Haxe 3.2.1)时会出现错误,Type not found:mynamespace.myclass
位于使用它的import
行。具有讽刺意味的是,FlashDevelop在使用该行的位置按Ctrl+Shift+1并将光标置于myclass上时自动添加了该行。此外,我可以在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": {
...
}
}
我尝试过的事情:
尽管我认为它应该在这一点上工作,但我尝试了下一步,创建一个zip文件并在其上使用haxelib install
。没有变化
我的项目中还有一个目录mynamespace
,但我不再需要它了,所以我删除了它。没有变化
为了确保某个地方没有输入错误,我将mylibraryname
目录的副本(该目录已正确安装在..\haxe\lib\mylibraryname\0.0.1-alpha
中)砰的一声放回我的项目中,并创建了一个.current
文件,其中包含0.0.1-alpha
,顺便说一句。很好
尽管文档中没有提到它,但我看到另一个库在haxelib.json
旁边包含一个文件haxelib.xml
,其中包含。无论是否存在此文件,都不会更改。(甚至不包括代码完成,它可以很好地列出我的类的唯一和继承的变量,但在编译期间在输出窗格中生成与我得到的完全相同的类型Not found
错误。)
haxelib自更新
。已经是最新的了。没有变化
Windows重新启动!为什么不呢?没有变化
如何让我的项目进行编译?为什么当FlashDevelop和haxelib这样做时,当我的库的目录结构和haxelib.json
是以第三方haxelib和文档为模型时,Haxe看不到它
或者我误解了什么,你必须在项目的上下文中测试haxelibs,直到它们真正发布?如果是这样的话,我不确定使用haxelib dev
和haxelib install mylib.zip
步骤到底应该做什么。您的库的结构和使用haxelib dev
设置它似乎是合理的,我能够用这样创建的自定义库编译一个项目
我能想到的唯一一件事是myclass.hx
中的包
声明不正确(可能您在移动文件时忘记了调整它?)
再次检查该文件中的第一行是否如下所示:
package mynamespace;
也许您可以尝试这样做:
在HaxeToolkit\haxe\lib中创建一个名为库的文件夹(我称之为“示例库”,您可以随意调用)
在示例库文件夹中创建另一个文件夹,标题为版本名(例如:0,0,1(注意逗号)),并将类放入其中
在示例库文件夹中创建一个名为“.current”的文件(如果不能,请尝试从另一个haxelib文件夹复制一个文件并粘贴到您的文件夹中),然后在其中输入版本名(例如:0.0.1)
在Project.xml中,添加
问题应该是haxelib.json
中的classPath
指令
它的值应该是根/基包中模块的相对搜索路径,而不是包的路径
尝试将其更改为”
或完全忽略该指令。谢谢,但这正是我说的“我将名称空间更改为mynamespace
”的意思但是+1,因为再次检查这个很好。更新了帖子以澄清。当我运行haxelib安装mylib.zip时,这里指示的步骤是自动执行的——正如我上面所说的,它已经在…\haxe\lib\mylibraryname
中正确安装了它。但是检查.current
文件是很好的,所以+1表示。它存在并包含子文件夹(0.0.1-alpha
)的名称,在上面的结构中找到了我的文件。更新了帖子以澄清问题。您能向我们提供软件包吗