2016-06-21 119 views
2

我試圖用一種語言編寫源代碼,並將其轉換爲本地C++和JS源代碼。理想情況下,轉換後的數據源應該是人類可讀的,並儘可能地類似於原始數據源。我希望哈克斯能爲我解決這個問題。所以我用haxescript編碼並將其轉換爲相應的C++和JS源代碼。然而,我發現haxe的例子似乎爲您創建了最終的應用程序。所以使用C++時,它將使用msbuild(或者它找到的任何編譯器)並從生成的C++代碼爲您創建最終的exe文件。 haxe是否也會創建C++和JS源代碼供您查看,還是全部在內部完成以使其無法訪問?如果它是可訪問的,那麼是否有可能刪除haxe的構建面,以便僅創建源代碼並停止?Haxe編譯爲C++和JS源代碼

感謝

回答

4

當您生成CPP所有的中間文件生成和保存,無論你決定來生成輸出文件(使用-cpp pathToOutput給出的路徑)。您獲得可執行文件的事實可能是因爲您正在使用-main開關。這意味着您的應用程序的入口點,但這並不是必需的,您可以傳遞給命令行一些您希望在輸出中構建的類型。

對於JS來說,它非常類似,只生成一個JS文件,並且只有在使用-main時纔有入口點。

至於其他的話題,貴HAXE代碼類似於生成的代碼的答案是肯定的,但是......一些類型(如EnumAbstract)只有在HAXE存在,因此就會產生代碼,功能的作品,但它可能看起來完全不同。另外Haxe有一個永遠在線的優化器/分析器,它可能會以意想不到的方式讓你的代碼變得麻木(分析器可以被禁用)。我仍然發現從生成的代碼中找出Haxe源並不困難。 JS支持源映射,這對於調試非常有用。所以最後,Haxe沒有做任何事情來混淆你生成的代碼,但也沒有做太多的努力來保護它太嚴格。

+1

謝謝你這樣詳細的答案。這聽起來像我所需要的。如果我使用多個haxe文件,它會將它合併爲一個C++和一個JS源文件,還是會得到多個C++文件和多個類似於原始多個haxe文件佈局的JS文件? – codetemplar

+1

C++生成很多文件(我相信每個類型+標題+構建文件),JS總是隻生成一個文件,它將結合所有類型。 –

+1

@codetemplar - 您應該注意CPP輸出不是簡單的源輸出。它基於hxcpp庫提供的運行時框架,與JS輸出依賴於JavaScript運行時(由瀏覽器提供)完全相同。因此,它構建可執行文件(包括運行時),因爲這是大多數人想要 - 中間源格式只有勉強有用。 –