2012-12-04 96 views
5

我有一些使用IntelliJ和SBT-Plugin編寫的Scala代碼,並希望爲我提供代碼作爲C++的DLL。將Scala文件轉換爲Dll

我已經嘗試過使用'ikvmc':我通過'包'將所有課程打包在一個jar中。之後我手動設置了一個包含我使用的所有依賴關係的jar(scala-library,scama,jamtio,jama)。不幸的是,我獲得了很多警告:'IKVMC0119','Emitted java.lang.VerificationError'和'IKVMC0104'(類似於下面的例子)!

然後我試着轉換一個簡單的scala-class(no dependencies)使用上述方法:包SBT,加斯卡拉 - library.jar並嘗試將其轉換通過ikvmc -target:庫simpleClass.jar我得到同樣的警告/錯誤,你看到下面...... enter image description here

我將非常高興,如果有人可以給我一步一步的解釋如何提供我的Scala代碼爲DLL。

非常感謝事先!

回答

2

您使用哪種IKVM版本?

如果您已經使用7.1,那麼這聽起來像是IKVM中的一個錯誤。通過樣本進行復制,聯繫郵件列表或錯誤列表。

如果您使用舊版本,那麼您應該更新。

+0

我使用'7.1.4532.2'的IKVM的最新版本。我使用Scala 2.9.2和SBT 1.0。我現在用IKVMC'7.0.4335.0'轉換了我的hello.jar(只有依賴關係是scala-library.jar),並且我獲得了與7.1版完全不同的警告:IKVMC0100'class not found',IKVMC0105'missing class', IKVMC0100'class not found',IKVMC0111'java.lang.NoClassDefFoundError'。 – user1537137

+0

請將其發送到IKVM的郵件列表中,或者打開一個bug代碼。 – Horcrux7

1

將hello.jar與以前版本的IKVM('7.0.4335.0')轉換後,我可以在c#中使用dll(即使我從ikvmc獲得警告)。它也適用於我的Scala代碼:將sbt打包的jar與它的依賴關係轉換爲一個dll。之後我可以使用C#中的類!