2012-03-12 50 views
7

我知道有DSSS,BUD/build,Orbit雅各布卡爾堡和官方rdmd。而且只有Orbit似乎很活躍。 那麼,哪些最適合構建具有很多依賴關係的龐大複雜的D程序? 不需要包裝,只需要很好和清楚的構建過程幫手。D的實際建築系統

+1

我剛剛創建批處理文件先用'-c'標誌運行和'-obbin /'然後在bin文件夾 – 2012-03-12 17:26:59

+0

運行鏈接* .bat/*。sh文件 - 是的,它正在工作,但是像Visual Studio GUI那樣的東西會更好。它的簡單插件已經存在,我正在使用它。Dreams-dreams :) – Raxillan 2012-03-12 17:34:27

+0

我很確定我可以自己創建一些能夠自動處理所有依賴項的東西,這將允許在bin文件夾中編譯多個主要方法並按需運行特定的unittests。但我現在沒有時間去做這件事 – 2012-03-12 17:57:43

回答

4

他們太,使用的Makefile這裏的模板:MakefileForD

爲什麼使用它:

  • 使用方便
  • 支持所有的編譯器
  • 能夠建立共享和靜態庫或可執行
  • // build
4

不是成品,但....

DMD已經有一個-deps flag,應該使自動生成make文件相當簡單。

1

我肯定會爲rdmd爭辯 - 這是一個很好的幫手來環繞你最喜歡的編譯器。從文檔基本用法是:

rdmd [rdmd args] [compiler args] <source file>[.d] [executable args] 

在我所有的d項目,我只是用Bash腳本(使用Cygwin如果在Windows上),它的表現的很出色。下面是一些我最喜歡的代碼片段:

運行

rdmd整個存在的理由是爲了簡化編譯 - 編輯 - 運行週期編輯運行,這讓那很簡單:

rdmd helloworld.d [args] 

rdmd將不會運行比上次編譯時間標記更新的任何文件,因此下一次運行相同的源文件而不進行編輯時,它只會傳遞到以前編譯的可執行文件。

選擇編譯器

儘管名字,你可以使用大多數編譯器與rdmd像GDC,LDC和DMD像這樣:

rdmd --compiler=dmd ... 

體形:

通常rdmd存儲可執行文件和*.obj文件來自您的來源在臨時目錄中使用tmpDir()rdmd來源 - 這基本上是一些神奇的給予rdmd運行*.d文件作爲腳本的感覺。你可以,但是,請用-of標誌輸出文件:

rdmd -of"helloworld.exe" helloworld.d