我想使用Haxe来编写一个库,这个库可以被其他项目用不同的语言使用。
目前,我在我的图书馆顶部有:
import neko.io.File;
import neko.io.FileInput;
import neko.io.FileOutput;
import neko.FileSystem;
import neko.io.Process;因此,我的库使用-neko标志编译成neko。但是,如果我尝试使用-cpp标志,则无法找到包:
$ haxe -cp src -main sws/Root.hx -cpp build/sws.CXX
src/sws/Root.hx:3: characters 0-20 : You can't access the neko package with current compilation flags (for neko.io.File)我认为解决办法应该是像这样做进口:
import sys.io.File;
import sys.io.FileInput;
import sys.io.FileOutput;
import sys.FileSystem;
import sys.io.Process;让Haxe根据我使用的编译标志将sys转换为neko或cpp。(假设所有模块都可用所有目标语言)。但这也行不通。
$ haxe -cp src -main sws/Root.hx -neko build/sws.n
src/sws/Root.hx:3: characters 0-19 : Class not found : sys.io.File
$ haxe -cp src -main sws/Root.hx -cpp build/sws.CXX
src/sws/Root.hx:3: characters 0-19 : Class not found : sys.io.File我该怎么做?
发布于 2014-04-01 12:08:53
如果import neko.io.File;有效,您可能使用的是Haxe2.x,而不是Haxe3(除非我遗漏了什么?)
在Haxe 3中,您可以使用import sys.io.File等。Haxe 3的迁移注释可以在:http://haxe.org/manual/haxe3/migration上找到。
在Haxe 2,每个目标都要这样做。我会做这样的事情:
#if neko
import neko.io.File;
import neko.io.FileInput;
import neko.io.FileOutput;
import neko.FileSystem;
import neko.io.Process;
#elseif cpp
import cpp.io.File;
import cpp.io.FileInput;
import cpp.io.FileOutput;
import cpp.FileSystem;
import cpp.io.Process;
#end当然,假设所有这些类都存在于您的Haxe发行版的CPP目标中。
如果没有,可以考虑升级到Haxe 3 :)
https://stackoverflow.com/questions/22770614
复制相似问题