论坛首页 综合技术版 D语言

D语言学习笔记(1)——编译和运行环境和hello程序

浏览 2684 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2007-11-26 关键字: D语言 编程 笔记
最近在CSDN上看到有提到一个D语言,仔细看了一下网上的资料之后,发现这个确实是个好东西! 这个语言集合了C、java和一些脚本语言如ruby的很多优点,同时抛弃了很多C++的缺点。感觉最直接的,一个是彻底抛弃C/C++的include 头文件,而采用了类似java的包管理机制,另外一个是彻底抛弃了C/C++的宏替换和源代码预处理过程,使得编译的速度大大提高而且减少了由于不正确使 用宏替换带来的隐患。这两个地方是我用c++以来感觉最不爽的地方了。此外,D语言还带来了很多新的特性,比如说GC(垃圾收集机制)、mixin等等现 代高级语言所拥有的功能。而且其提供的基本库phobos提供了stl所有的功能而且还加了很多像ruby这样的脚本语言才提供的函数,使得编程变得更加 的容易,代码量大大减少。更让人感到兴奋的是,D语言支持同步互斥变量和函数的声明,使得编写多线程程序的时候不再很麻烦的为每一个同步变量加锁和解锁 了。所以,我觉得D语言是一个很有前途的语言。

废话就说到这,现在开始说正事。

编译和运行环境(linux下):

http://www.digitalmars.com/d这个网站下载D语言的编译包dmd.zip。解压出来之后会发现有dmd/bin这个目录,把环境变量PATH加上这个目录,就可以随时随地编译D语言的程序了。好像挺简单的。

其实深究起来,无非是跟一个配置文件dmd.conf有关。这个文件在dmd/bin目录下,和编译程序dmd在同一个目录。缺省情况下,dmd.conf是这样的:

[Environment]
DFLAGS=-I%@P%/../src/phobos -L-L%@P%/../lib

跟gcc的参数很像,-I后面接着的是源代码包的路径,-L后面接的是库文件的路径。而%@P%指代的是编译程序dmd所在的路径。

第一个程序,hello.d:

  1. import std.stdio;  
  2. int main(char[][] args)
  3. {  
  4.     writefln("Hello World! ");  
  5. }  

写好程序之后,运行dmd hello.d。之后就生成了可执行文件hello。运行hello,可以看见输出了“Hello World!”这个字符串,并换行了。

对 比一下我们用C写的相同程序,发现有个区别,就是main函数的参数改变了。变成了char[][] args。这是一个更好用的结构。运行的程序坐在目录和程序名存放在args[0],第一个命令行参数放在args[1],第二个命令行参数放在args [2],以此类推……

Windows下的编译环境:

第一步还是需要下载dmd.zip这个文件而且解压到合适的位置。
在Windows下比较方便的编译环境目前我只发现是visual studio 2005的一个支持D语言的插件VSpluginD
装上之后可以在VS2005上创建D语言的工程,并且带有可以自动帮你生成包和模块的模板。不过目前还不支持变量和函数自动补全的功能。还需要说明的是,必须在Tools -> Options -> Projects and Solutions -> VSpluginD Settings上面设置dmd.exe和link.exe存放的目录。
把编译器dmd的目录设置好之后,就可以正常的编译和运行D语言的工程了。
这个插件除了没有代码补全功能之外,还不能设断点跟踪这个缺点。
毕竟是一个比较新的语言,当然没有目前的成熟C++编译环境那么好用。不过D语言本身比C++所具有的优势足以让你去暂时忍受目前这些编译环境的不足。

刚才又看到站内一个朋友的blog文章(在Windows下配置Code::Blocks+DMD进行D编程),发现Code::Blocks下面已经可以支持加断点调试。这样一来,就方便多了。
   
时间:2007-11-27
MS Poseidon很不错的说
   
0 请登录后投票
时间:2007-11-27
welcome to D world
   
0 请登录后投票
时间:2007-11-28
能不能留个QQ或MSN之类的交流一下
   
0 请登录后投票
论坛首页 综合技术版 D语言

跳转论坛:
JavaEye推荐
    快速回复 引用上一条消息 (Alt+S)