簡體   English   中英

Haxe:從neko,cpp和java sys樹導入

[英]Haxe: Import from neko, cpp and java sys trees

我想使用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更改為nekocpp (假定所有模塊都支持所有目標語言。)但這也不起作用。

$ 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

我應該怎么做?

如果import neko.io.File; 起作用,您可能正在使用Haxe 2.x,而不是Haxe3。(除非我缺少某些內容?)

在Haxe 3中,可以使用import sys.io.Fileimport sys.io.File 3的遷移說明可以在以下位置找到: http : import sys.io.File

在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 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM