[英]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
更改為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
我應該怎么做?
如果import neko.io.File;
起作用,您可能正在使用Haxe 2.x,而不是Haxe3。(除非我缺少某些內容?)
在Haxe 3中,可以使用import sys.io.File
等import 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.