2010-10-09 32 views
5

我一直在d玩弄了幾天,並得到它非常興奮,直到,那就是,我試圖讓gtkd工作。我現在浪費了3天中最好的一部分來試圖建立一個工作環境,並且開始變得有點沮喪。我想知道在我放棄之前是否有人可以幫忙。我可以在網上找到的很多信息都過時了,所以我不確定我甚至認爲這甚至是可能的。設置在Ubuntu 10.04工作D2.x工具鏈(帶gtkd)

這剩下的只是什麼我到目前爲止已經試過,你可能並不需要讀它,如果你有一個快速的解決方案,可以隨意跳轉到... [跳轉到這裏]

所以,首先我需要知道的是探戈實際上可與D2.0使用,我相信這是不是原先但現在D2.x是這樣的,你可以用探戈和火衛一旁邊對方。如果這不是事實,那麼我想我已經陷入了第一個障礙,這是一個非首發。

到目前爲止,我所採取的步驟。

  1. 我安裝GDC從Ubuntu軟件庫
  2. 我安裝libtango報頭從回購(注意,只是,沒有庫可用頭,所以這不是太大的幫助)
  3. 我手動安裝DSSS

該設置將彙編d,但是當我來到安裝gtkd(與DSSS),它編譯但我得到了各種錯誤,試圖用它來編譯任何東西時(與探戈)的。那麼,正如我提到的,我沒有libs,所以這不應該是意外的。我試圖手動安裝探戈庫,但仍然有大量的錯誤,並最終訴諸於dsss net install tango,它警告我,我將無法回到phobos(這讓我感到困惑,因爲我已經提到過我認爲兩個可以一起使用),無論如何,我繼續,它徹底搞砸了我的設置。我現在無法編譯任何D文件。

抱歉,我不能更明確什麼錯誤,我在最後一節得到的,我真的不記得了。

無論如何,我刪除我已經安裝了一切。並重新開始。

  1. 我安裝GDC從回購
  2. 我DSSS手動安裝

我現在讀的是最新的探戈不與GDC工作(不知道這是真實的),所以我

  1. 得到了dmd的deb並安裝了它。
  2. 手動安裝latested探戈(庫和頭)。
  3. 與DSSS

安裝gtkd現在我不能讓DSSS認識到DMD,所以只能用GDC它。但是,沒有找到探戈。如果我直接使用dmd,它會發現tango和gtkd,但我得到的關於volatile語句的錯誤已被棄用。某些在D2.x中顯然是真的,這使我回到「甚至支持探戈」。

天哪我很困惑!

[跳轉到這裏]

如果誰能給我一步如何讓工作設置設置一步的指示,我會永遠感激!

感謝,T.

更新:! 「我們在那裏」

所以我從http://www.digitalmars.com/d/download.html下載dmd.2.049.zip並提取到我的主目錄,並做了export PATH = $PATH:~/dmd2/linux/bin(感謝dsimcha)。

忘記關於dsss。根據http://www.dsource.org/projects/gtkd/wiki/UsingSubversion的說明獲得了gtkd的svn版本。編輯GNUmakefile將前綴更改爲/home/me/dmd2/linux並做了make install

編輯~/dmd2/linux/bin/dmd.conf所以包含路徑包括../include(gtkD庫放在../lib,所以我不需要編輯庫路徑)。

現在終於用gtkD編譯我需要鏈接libgtkd和libdl,這是由dmd mydprog.d -L-lgtkd -L-ldl(感謝jpf)完成的。

回答

6
  1. 探戈不能與D2工作。很久以前,在移植它的過程中已經做了一些努力,但是這種情況已經碰壁,目前還不清楚這是否真的要結束。 D2的OTOH火衛一是比D1的火衛一好,所以Tango的缺乏並不像聽起來那麼糟糕。

  2. GDC支持D2的古代版本。 gtkD絕對沒有機會編譯它。您應該使用參考DMD編譯器。

  3. 通常,在Linux上設置DMD的正確方法是簡單地將dmd.2.0xx.zip解壓縮到您的主目錄中,然後執行export PATH = $PATH:~/dmd2/linux/bin以確保DMD可執行文件位於您的路徑中。然後,一切都應該工作(與DMD2和Phobos)。

+0

謝謝,清除了很多。我現在感覺好多了 :)。任何想法如何讓gtkd工作。我已經用'dsss'編譯它,現在只需要按照您的建議使用Phobos和'dmd'設置。我已經嘗試將它安裝到gtkd到prefix =〜/ dmd2/linux /中,然後編輯dmd.conf來更改包含目錄,但沒有運氣。 – tjm 2010-10-10 00:04:06

+0

好吧,祝你好運,我已在我的帖子中編輯瞭解釋當前的情況;現在我收到鏈接錯誤。 – tjm 2010-10-10 01:39:20

4

如果你想要dmd傳遞參數給鏈接器,你必須用-L作爲它們的前綴。 我認爲對於gtkd你需要鏈接到gtkd庫和libdl。

-L-lgtkd -L-ldl 
+0

太棒了,謝謝。我看到了-L標誌,並嘗試過'-Lgtkd'和'-Lgtgt',但從未想過'-L-1 ...'。現在一切正常。 – tjm 2010-10-10 13:10:28

+0

太棒了!我遇到了同樣的問題,正在嘗試所有我能想到的-Lgtkd變體。永遠不會想到要嘗試-L-1 ...(並且文檔很難找到!) – 2011-11-25 10:22:40