2012-03-12 42 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 
相关问题