首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Haxe:从neko、cpp和java sys树导入

Haxe:从neko、cpp和java sys树导入
EN

Stack Overflow用户
提问于 2014-03-31 19:36:18
回答 1查看 520关注 0票数 0

我想使用Haxe来编写一个库,这个库可以被其他项目用不同的语言使用。

目前,我在我的图书馆顶部有:

代码语言:javascript
复制
import neko.io.File;
import neko.io.FileInput;
import neko.io.FileOutput;
import neko.FileSystem;
import neko.io.Process;

因此,我的库使用-neko标志编译成neko。但是,如果我尝试使用-cpp标志,则无法找到包:

代码语言:javascript
复制
$ 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)

我认为解决办法应该是像这样做进口:

代码语言:javascript
复制
import sys.io.File;
import sys.io.FileInput;
import sys.io.FileOutput;
import sys.FileSystem;
import sys.io.Process;

让Haxe根据我使用的编译标志将sys转换为nekocpp。(假设所有模块都可用所有目标语言)。但这也行不通。

代码语言:javascript
复制
$ 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

我该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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,每个目标都要这样做。我会做这样的事情:

代码语言:javascript
复制
#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 :)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22770614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档