2014-06-27 144 views
1

我剛開始學習Haxe,但遇到了編譯錯誤。未找到類:helloworld.Main

Main.hx

package helloworld; 

import js.Lib; 

class Main { 

    static function main() { 
     Lib.alert("Hello World"); 
    } 

} 

請小心目標類是helloworld.Main

build.hxml

-js bin/HelloWorld.js 
-cp src 
-main helloworld.Main 
-debug 

構建過程日誌

Building HelloWorld_p140627 
Running Pre-Build Command Line... 
cmd: C:\HaxeToolkit\haxe\haxe.exe X:\tmp\HelloWorld_p140627\build.hxml 
Class not found : helloworld.Main 
Build halted with errors. 
Done(1) 

enter image description here

爲什麼?類helloworld.Main肯定存在。我甚至不能說「你好,世界」?現在

回答

5

更新,我可以看到你的項目的截圖:

您試圖編譯「helloworld.Main」,這意味着被稱爲「主」套「HelloWorld」的類,所以HAXE將在你的「src /」目錄下尋找名爲「helloworld/Main.hx」的文件。

但是你有「src/Main.hx」,而不是「src/helloworld/Main.hx」。創建一個名爲「helloworld」的子文件夾,在那裏移動「Main.hx」,你會沒事的。您在Haxe中使用的軟件包必須與目錄結構相匹配。


請確保您的軟件包與您的文件夾以及您的文件名與您的類名對齊。所有這些應該在你的「-cp」類路徑文件夾中。

對於上面的例子中,代碼看起來不錯,我希望您的佈局看起來像:

build.hxml     <-- build file 
src/helloworld/Main.hx  <-- classpath/package/class.Hx 
bin/      <-- output folder 
bin/HelloWorld.js   <-- will be created once it compiles 

然後你會運行haxe build.hxml。如果這不起作用,請發佈項目的確切文件結構(哪些文件夾和哪些目錄)以及用於構建它的命令以及輸出。

希望有幫助,

+0

我確認了項目的文件格式,但沒有什麼好奇的。我已經添加了上面的佈局。你能找到編譯錯誤的原因嗎? – weed

+1

更新我的答案。你錯過的是你要求「helloworld.Main」,即「src/helloworld/Main.hx」,而這個不存在。 –

+0

非常感謝Jason,我明白了。我成功編譯。 – weed