2010-03-04 127 views
20

我想試試D編程語言。我有一個簡單的寵物項目,我一直想完成,我認爲這將是學習D 2.0的好機會。D如何支持64位?

然而,我的主要操作系統是64位Windows 7 64位Kubuntu的雙啓動,我似乎無法得到它的工作。該項目將使用SDL,我懷疑我的64位操作系統可能是問題。

什麼是事務的D 64位的現狀如何?有沒有人有經驗讓這個工作?

順便說一句我沒有興趣D 1.0,所以它的D 2.0或蕭條。

回答

21

目前,答案是一個響亮的「它取決於」。具體而言,它依賴於OS和D.

DMD或數字火星d編譯器的版本上,是參考實現和提供了64位的支持。 64位的支持是新的(見下面的評論),但語言創建者瓦爾特布萊特已經表明,現在把它與32位相提並論,現在D2是一個高優先級的事情(或者更確切地說,現在Andrei Alexandrescu的書"The D Programming Language"已經發布)。不過,他表示,由於鏈接器問題,前幾個版本在Windows上不支持64位(這似乎是still be true)。

對於D1,如果使用LDC,這是一個d編譯打靶LLVM支持64位是在Linux和Mac很大。對於Windows,以GCC後端爲目標的編譯器GDC已復活,但在曲線後面有幾個版本。在D1中,由於語言規範相當穩定,因此這不是非常重要。

對於D2,64位支持目前基本上不存在。前面提到的GDC確實支持它,但D2一直在迅速發展,GDC也過時了,無法在這裏使用。爲版本2.015(最新的GDC支持)編寫的大多數非平凡代碼可能甚至不會在版本2.040(最新版本的DMD)上編譯,反之亦然。

編輯:截至今天,2010年6月21日,有在SVN邁向DMD 64位支持作了一次提交。這些與編譯器相差甚遠,但重點在於它正在進行中。

編輯#2:截至2011年2月中旬,DMD 2.052支持Linux上的64位。

編輯#3:截至2011年11月,GDC是可用的,只有一個發佈在DMD後面,儘管它有些beta版本,但尚未打包。你必須從源代碼編譯它。

+6

更新:Linux的64位DMD已於2011年2月17日發佈(v2.052)。 – kennytm 2011-03-07 21:19:01

+2

更新:GDC已經趕上DMD前端明智,目前在DMDFE版本2.052。 – klickverbot 2011-03-09 18:22:56

+2

我們現在有適用於Windows的64位GDC二進制包。 – 2012-01-26 15:02:40

3

正如dsimcha所說,D2.0你不會找到一個64位的編譯器。但是,您可以安裝32位dmd編譯器來在Linux中編譯32位程序。你可能會使用Derelict作爲你的SDL包裝。

Additional Packages Required

更新:由於編譯器是32位的,你需要安裝SDL庫的32位版本。我不認爲您會在存儲庫中找到它們,因此您需要自己編譯SDL(您可能能夠從32位repo中解壓縮SDL .deb並手動安裝它們)。對不起,我錯過了這將是一個問題。

+0

那個鏈接是金色的。它讓我更加接近。然而,我仍然陷入困境。 32位可執行文件不需要加載SDL庫。 – 2010-03-05 06:23:08