2010-03-07 163 views
11

我已經對「D」感興趣了好幾年了,最近決定開始真正使用它。我已經能夠很容易掌握基礎知識,我喜歡該語言的基本功能集,而且我閱讀的內容越多,所得到的印象就越深刻。如何在Mac OS X 10.6(Snow Leopard)上使用D開始

現在,我非常有興趣將自定義Web應用程序服務器編寫爲業餘愛好項目,我希望它是一個簡單的二進制文件,並使用實際Web應用程序的動態鏈接庫。我相信D是這個合資企業的完美語言。

只有一個大問題......在過去的幾天裏,我完全無法獲得任何IDE設置的工作。我可以在命令行上編譯和運行所有東西,但是我可以在任何IDE中使用(Code :: Blocks,eclipse + descent,帶有D插件的Xcode,甚至是在Windows上的VirtualBox中運行的Windows D-IDE) XP專業版)的唯一的事情是有史以來發生的情況是:

object.d: Error: module object cannot read file 'object.d'

經過兩次天的嘗試不同的東西,下面的教程,這實在是讓我心煩。我想學會高效地使用D,但是如果我想保持理智,我需要一些在編輯器中包含代碼完成的舒適工具鏈,我明顯這樣做。

[編輯:加強調的真的重要的一點]

是否有任何人可以幫助我建立Eclipse或(最好)的NetBeans(但沒有插件似乎是公開的)讓我在IDE中編譯和運行能力,以及代碼完成?在我的Mac上運行Mac OS X 10.6?

我想使用的火衛一庫(和爲此的2.0編譯器),但我真的不關心,如果它dmdgdmd (gdcmac)

[此外]

我相信我們可以假設,我的DMD編譯安裝是爲了,因爲它從命令行工作。我只是不想在命令行中使用它,因爲它很乏味。現在的問題是關於和IDE,編譯器工程,它只是集成開發環境,不會

回答

11

那麼,在我的持續性bug could不能離開這個問題,我終於得到它的工作。

所需的組件把一切的工作在Mac OS X 10.6是:

  • DMD編譯器
  • Eclipse的 「伽利略」(3.4版)
  • 下降
  • DSSS
  • 一更改爲/usr/etc/rebuild/default
  • 我一起入侵的新文件/usr/etc/rebuild/macosx.conf
  • 爲Eclipse

全局和每個項目設置按照以下說明後,您將有Eclipse的能夠做你的d項目代碼完成,你就能夠建立/從IDE中以及運行。

實際操作步驟如下。

  1. 安裝digitalmars dmd 2。0編譯
    1. 下載從digitalmars.comdirect link to 2.041)二進制分發
    2. 解壓下載文件到~/somefolder(創建一個〜/ somefolder/DMD2夾給我,我會用這個例子的時間。)
    3. 終端(/Applications/Utilities/Terminal.app)將文件移動到目的地
    4. sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/當被問及
    5. 招剛纔複製dmd.conf它的位置輸入你的登錄密碼:sudo mv /usr/bin/dmd.conf /etc/dmd.conf
    6. sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/
    7. sudo mv ~/somefolder/dmd2 /usr/
    8. 使用自己喜歡的文本編輯器編輯/etc/dmd.conf包含以下內容:

[環境]

DFLAGS = -I在/ usr/DMD2/src/phobos -I/usr/dmd2/src/druntime/import -LL/usr/lib

  • 下載並安裝Eclipse的你最喜歡的Mac OS X版本的可用在http://www.eclipse.org/downloads/了許許多多的數百(我選了個可可版本的C/C++)
  • 安裝後裔(幾乎the normal instructions in the wiki
    1. 運行Eclipse(不要打擾作爲root運行)
    2. 轉到Help - 從菜單欄>Install New Software。 (跆拳道是否在Help菜單?!)
    3. 複製/粘貼http://downloads.dsource.org/projects/descent/update-site到url字段中。
    4. 按照屏幕上的說明完成安裝。
  • 安裝dsss from sourceforgedirect link to .dmg
    1. 使用安裝包像任何其他磁盤映像上。
    2. 創建一個文件/usr/etc/rebuild/macosx.conf並粘貼下面的代碼片段。(並保存,杜)
  • profile=phobos 
    compiler=dmd 
    inifile=dmd.conf 
    exeext= 
    objext=o 
    version=DigitalMars 
    noversion=GNU 
    version=MacOSX 
    version=linux 
    noversion=Unix 
    noversion=Posix 
    noversion=Windows 
    noversion=Win32 
    noversion=Win64 
    version=X86 
    noversion=PPC 
    noversion=X86_64 
    version=D_InlineAsm 
    version=D_InlineAsm_X86 
    noversion=D_InlineAsm_PPC 
    noversion=D_InlineAsm_X86_64 
    version=LittleEndian 
    noversion=BigEndian 
    
    [compile] 
    cmd=dmd -version=MacOSX -c $i 
    flag=$i 
    incdir=-I$i 
    libdir=-L-L$i 
    optimize=-O 
    version=-version=$i 
    
    [link] 
    oneatatime=yes 
    #cmd=dmd -L-lphobos $i -of$o 
    cmd=dmd $i -of$o 
    # cmd=dmd -L--start-group -L-lphobos $i -of$o 
    
    libdir=-L-L$i 
    lib=-L-l$i 
    flag=-L$i 
    
    [liblink] 
    safe=yes 
    oneatatime=yes 
    cmd=if [ ! -z "$o" ]; then ar rc $o $i; fi 
    
    libdir= 
    lib= 
    flag= 
    
    [postliblink] 
    cmd=ranlib $i 
    
    [shliblink] 
    shlibs=no 
    
    [dyliblink] 
    dylibs=no 
    
  • 變化/usr/etc/rebuild/default文件讀取:profile=dmd-macosx
  • 設置Eclipse以使代碼完成
  • 在全球eclipse偏好中na vigate TP D =>Build Path =>User Libraries
    1. 點擊New,鍵入 「性病」,按OK選擇新創建的條目,點擊Add Directory
      • 定位到/usr/dmd2/src/phobos/std和添加。
    2. 設置Eclipse項目。 你必須爲每個d項目手動做到這一點,你會做
    3. 用「d => d項目」嚮導創建一個新的項目(感謝下降)
    4. 走進項目屬性(右單擊項目資源管理器中的項目並選擇屬性)
    5. 在左側列表中選擇D Build Path,然後在出現的面板中選擇Include Path選項卡。
    6. 單擊Add Library按鈕,然後在嚮導的第二頁中選擇std
    7. 配置(與在它前面的工具箱在構建/運行/調試工具欄上啄了一點綠色播放按鈕,從下拉菜單中)
    8. 在左側列表中的extarnal構建工具
    9. 轉到External tools configurations...右鍵單擊Program並從上下文菜單中選擇New
    10. 給你的配置,如「與DSSS建設」,並設置下列選項一個體面的名字:
      • 地點:/usr/bin/dsss
      • 工作目錄:完整路徑目錄中的項目 您dsss.conf文件(如果你沒有一個dsss.conf文件中創建一個在命令行:dsss genconfig
      • 參數:build(或重建,或清洗,或......)
    11. 重複步驟2和如上所述,您可以根據您的需要選擇多個構建/運行選項。
  • 恭喜,一切都應該現在就工作。

    如果由於某種原因,這不適用於您,讓我知道,我會很樂意找出它出錯的地方,並幫助您實現它。如果有更好或更簡單的方法,我也很想了解它。

    +0

    有點傷心,我沒有得到比這個混亂更好的答案。 – Kris 2010-03-17 01:04:14

    0

    (你可以在d 1.0使用的火衛一。反正...)

    你在哪裏安裝火衛一和druntime頭?

    <the .zip file>/src/druntime/ 
    <the .zip file>/src/phobos/ 
    

    通常我複製他們進入/usr/include

    (另外,儘量編輯dmd.conf使用絕對路徑:

    [Environment] 
    DFLAGS=-I/usr/include/phobos -I/usr/include/druntime/import -L-L/usr/lib 
    

    +0

    我已經編輯了dmd.conf有絕對路徑(DFLAGS = -I/usr/dmd2/src/phobos -I/usr/dmd2/src/druntime/import -LL/usr/dmd2/lib)我也將二進制文件符號鏈接到/ usr/bin _and_中添加了所有與我的PATH環境相關的dmd2相關路徑(bash簡介),不幸的是沒有任何區別。 – Kris 2010-03-10 21:12:50

    1
    object.d: Error: module object cannot read file 'object.d' 
    

    清楚地表明,它不能正確地找到這些庫。所以,第一個問題是你的dmd.conf是如何設置的。你需要確保它指向src/phobos,src/druntime/import和osx/lib的正確位置 - 無論你放置哪些位置。就我個人而言,我把dmd代碼放在家裏的子文件夾中,不要試着將它安裝在/ usr中,但是說明書確實告訴你將它們安裝在默認位置,所以它應該可以工作。

    假設你的dmd.conf看起來沒問題,最可能的情況是它實際上使用了錯誤的dmd.conf。每對數字火星網站上的說明(http://www.digitalmars.com/d/2.0/dmd-osx.html):

    dmd will look for the initialization file dmd.conf in the following sequence of directories: 
    
    1. current working directory 
    2. directory specified by the HOME environment 
    3. variable directory dmd resides in 
    4. /etc/ 
    

    我的猜測是,你在/ etc dmd.conf並已編輯那一個,但在

    /where_dmd_is/dmd2/osx/bin/ 
    
    離開原來dmd.conf

    當然,我曾經有過這樣的事情發生過一兩次。無論如何,你需要確保的第一件事是你正在編輯的dmd.conf是dmd正在使用的dmd.conf(所以確保dmd最先看到的地方沒有dmd。 conf),第二件事是你需要確保的是你的dmd.conf中的路徑正確指向了dmd的東西。如果這兩件事是正確的,那麼dmd 應該找到正確的庫。

    在附註中,我會指出,但是,考慮到您希望使用共享庫的評論是共享庫無法正確使用D2(我不知道它們是否與D1一起工作,因爲我不要使用D1 - 我懷疑他們不會)。有關D新聞組的討論(http://www.digitalmars.com/NewsGroup.html),所以你可以看看那裏。這件事正在受到關注,並正在研究中,但尚未完全奏效。此外,您可以查看新聞組,以獲取有關D相關問題的進一步幫助。這可能是現在要問的最好的地方。

    +0

    這些庫可能是靜態的而不是動態的,所以這不是一個問題,如果它成爲一個問題,我很可能會修復它,如果給予一個體面的工作環境。我沒有保留原始文件,因爲我可以輕鬆地再次解壓縮它們,在我的系統上只有一個dmd.conf,它位於/ etc /'sudo find/-name「dmd.conf」-print'告訴我這一點。我再次向自己保證,所有路徑都正確設置。 – Kris 2010-03-11 01:36:12

    1

    如果它是一個IDE的問題,儘可能日食去,我相信,插件看看是血統:http://www.dsource.org/projects/descent

    不幸的是,我還沒有嘗試過自己,所以我不知道它有多好。根據其wiki頁面,它主要用於D1,但至少在某種程度上支持D2。

    +0

    我已經安裝了eclipse和血統,以及dsss。代碼完成不適用於std庫(phobos)中的任何內容,即使編譯時視圖和類型瀏覽器確實有效,編譯也不會起作用。我已經看過維基和所有的,但沒有演練結果在我有一個工作的IDE,這就是爲什麼我在這裏問 – Kris 2010-03-11 11:19:09

    1

    ,如果你想快速上手(又名雙擊安裝):D for Xcode

    要求:

    • 的Xcode

    就是這樣。安裝最新的dmd編譯器,所以它在終端也是如此。

    +0

    現在就試一試,當我問這個問題時,X代碼的D版本找不到了,這裏希望現在好一點。 – Kris 2010-06-28 21:31:58

    +0

    大部分與我之前遇到的問題相同,代碼完成並不真正起作用(只是來自當前文件的關鍵字),沒有調試支持(斷點不起作用)等等。 – Kris 2010-06-28 21:37:34

    +0

    啊,對不起,我超前了。是的,沒有正確的調試和完整的代碼完成支持。這在「已知問題」中提到。我有一種感覺,這是當前發展的「邊緣」。畢竟,D在alpha中。也許你可以自己貢獻這些功能? *微調微調*:) – 0scar 2010-06-29 00:16:41

    1

    當我不時看到這個問題在我的搜索結果中回來時,我想我會保持相關。

    時下;在山獅的時代,一個更簡單的解決方案存在於Mono-D project

    只要安裝MonoDevelop的(或Xamarin室),並按照five minute installation manual

    相關問題