2011-10-13 57 views
4

我最近安裝了Fedora 16(這太棒了),主要是因爲我想嘗試LDC2,但也因爲Gnome Shell比Ubuntu 11.10(至少在我的硬件上)在Fedora上運行得更順暢。Fedora 16上的D編程

LDC2很好用,但我想知道如果通過輸出LLVM .ll/.bc代碼,我可以在Windows/Mac/Android上編譯和運行應用程序。我可以使用LLVM將.ll/.bc文件編譯爲Windows機器上的ASM .s。但是,我第一次嘗試編譯ASM時會出現錯誤:找不到「主要」函數。「通過ASM查看,我看到一個_Dmain函數。我沒有編寫ASM的經驗,所以我有點迷路。

我知道DRuntime在這裏發揮作用,但關於LDC2 DRuntime平臺支持狀態的最新信息很少。所以我想知道我的選擇在這裏。 LDC2可以在此時編譯Windows代碼嗎?目前是否支持其他平臺/體系結構進行交叉編譯?

GDC呢?我想嘗試GDC,但是我無法在Fedora軟件中心找到它,而且我對Linux有點新,所以我很難從源代碼構建它。


d(2版)是我最喜歡的語言(C#在第二),我期待着有一天我可以寫在d遊戲/應用程序,而無需擔心硬件或平臺的支持。我在爲語言生根,我希望開源社區能夠在未來強烈支持D語言。它確實是我見過的功率,性能和生產力的最佳平衡。

回答

1

I'm wondering if, by outputting LLVM .ll/.bc code, I can compile AND RUN the application on Windows/Mac/Android.

標準庫和語言運行庫有很多代碼有條件地編譯,這取決於當前的平臺,所以沒有。

+0

這是令人失望的,但並不出乎意料。感謝您的迴應。 你有關於在Fedora 16上安裝GDC的技巧嗎?使用GDC可以爲ARM平臺編譯D2代碼嗎?另外,我可以銷售使用GDC編譯的軟件嗎? –

+0

當然,您可以銷售使用gdc編譯的軟件,就像您可以銷售使用gcc編譯的軟件一樣。它們對代碼的許可或可銷售性沒有影響。最終,gdc將與ARM一起正常工作,但現在,據我瞭解,d運行時尚未完全更新以與ARM一起工作,因此雖然gdc將爲ARM編譯D代碼,但它不會真正起作用它應該。 –

1

LDC2 works great, but I'm wondering if, by outputting LLVM .ll/.bc code, I can compile AND RUN the application on Windows/Mac/Android.

不只是由於運行時差異。閱讀http://llvm.org/docs/FAQ.html#platformindependent。儘管它是面向C/C++的,但仍然有很多事情適用於D。

1

What about GDC? I'd like to try GDC but I can't find it on the Fedora Software Center, and I'm a bit new to Linux so I'm having difficulties building it from source.

編譯GDC很簡單。請仔細閱讀instructions

其餘的已經說過了。平臺獨立性是通過在D級進行條件編譯來實現的,因此位碼也是平臺相關的。