如何在Mac OS X 10.6(Snow Leopard)上开始使用D

时间:2010-03-07 15:12:17

标签: macos osx-snow-leopard d

我对“D”感兴趣已有几年了,最近决定开始真正玩它。我已经能够很容易地掌握基础知识,我喜欢这种语言的基本功能集,我读的越多,我就越感兴趣。

现在,我非常有兴趣将自定义Web应用程序服务器编写为业余爱好项目,我希望它是一个简单的二进制文件,使用动态链接库来存储实际的Web应用程序。我相信D是这次冒险的完美语言。

只有一个大问题......在过去的几天里,我完全无法使用任何类型的IDE设置。我可以在命令行上编译和运行一切,但是我在任何可用的IDE中都可以尝试(Code :: Blocks,eclipse + descent,带D插件的Xcode,甚至Windows上的VirtualBox中运行的Windows D-IDE) XP Pro)唯一发生的事情是:

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

经过两天尝试不同的事情并遵循教程,这真的让我很紧张。我想学习有效地使用D,但是我需要一些舒适的工具链,包括编辑器中的代码完成,如果我想保持理智,我显然这样做。

[编辑:重点强调 真的 重要位]

是否有人可以帮助我设置eclipse或(最好是)netbeans(但似乎没有插件似乎公开可用)给我编译和运行IDE的能力,以及代码完成?在我的Mac上,运行Mac OS X 10.6?

我想使用phobos库(以及2.0编译器),但我并不关心它是dmd还是gdmd (gdcmac)

[加成]

我相信我们可以假设我的dmd编译器安装正常,因为它可以从命令行运行。我只是不想在命令行中使用它,因为它很繁琐。问题是关于和IDE,编译器工作,它只是不会

的IDE

6 个答案:

答案 0 :(得分:11)

好吧,我身上的持久性错误无法让问题独自解决,我终于让它发挥作用了。

在Mac OS X 10.6上运行所需的所有组件是:

  • DMD编译器
  • Eclipse“Galileo”(版本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. 下载二进制分发版
    3. 将下载的文件解压缩到~/somefolder(为我创建了一个〜/ somefolder / dmd2文件夹,我将在本例中使用该文件夹。)
    4. 在终端(/Applications/Utilities/Terminal.app)中将文件移至目的地
    5. sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/在询问时输入您的登录密码
    6. 将刚刚复制的dmd.conf移动到其位置:sudo mv /usr/bin/dmd.conf /etc/dmd.conf
    7. sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/
    8. sudo mv ~/somefolder/dmd2 /usr/
    9. 使用您喜欢的文字编辑器编辑/etc/dmd.conf以包含以下内容:
  2.   

    [环境]

         

    DFLAGS = -I / usr / dmd2 / src / phobos -I / usr / dmd2 / src / druntime / import -L-L / usr / lib

    1. http://www.eclipse.org/downloads/(我为c / c ++挑选了一个可可版本)的数百个版本中,下载并安装您最喜爱的Mac OS X版本的eclipse。
    2. 根据the normal instructions in the wiki安装下降( 几乎
      1. 运行Eclipse(不要以root身份运行)
      2. 转到Help - >菜单栏中显示Install New Software。 (wtf会在Help菜单中执行此操作吗?!)
      3. http://downloads.dsource.org/projects/descent/update-site复制/粘贴到网址字段中。
      4. 按照屏幕说明完成安装。
    3. 安装dsss from sourceforgedirect link to .dmg
      1. 在磁盘映像上使用安装程序包,就像其他任何一样。
      2. 创建文件/usr/etc/rebuild/macosx.conf并将以下代码段粘贴到其中。 (并保存,呃)
    4. 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
      
      1. /usr/etc/rebuild/default文件更改为:profile=dmd-macosx
        1. 设置Eclipse以完成代码
      2. 在全球日食偏好中导航tp D => Build Path => User Libraries
        1. 点击New,输入“std”,按OK选择新创建的条目,点击Add Directory
          • 导航至/usr/dmd2/src/phobos/std并添加。
        2. 设置Eclipse项目。 您必须为您要制作的每个D项目手动执行此操作
        3. 使用“D => D项目”向导创建一个新项目(感谢Descent)
        4. 进入项目属性(右键单击Project Explorer中的项目并选择Properties)
        5. 在左侧列表中选择D Build Path,然后在显示的面板中选择Include Path标签。
        6. 点击Add Library按钮,然后在向导的第二页中选择std
        7. 配置extarnal构建工具
        8. 转到External tools configurations...(从小绿色播放按钮的下拉列表中,在构建/运行/调试工具栏中,工具箱前面有工具箱)
        9. 在左侧列表中点击Program,然后从上下文菜单中选择New
        10. 为您的配置提供一个像“Build with dsss”这样不错的名称并设置以下选项:
          • 地点:/usr/bin/dsss
          • 工作目录:项目的dsss.conf文件的完整目录路径 (如果您没有dsss.conf文件,请在命令行上创建一个:dsss genconfig
          • 参数:build(或重建,或清理,或......)
        11. 根据需要重复上述步骤2和3,以获得尽可能多的构建/运行选项。
      3. 恭喜,现在一切都应该有效。

        如果出于某种原因这对你不起作用,请告诉我,我会很高兴找出它出错的地方,并帮助你让它发挥作用。如果有更好或更简单的方式,我也很想知道它。

答案 1 :(得分:1)

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

清楚地表明它无法正确找到库。所以,第一个问题是你的dmd.conf是如何设置的。您需要确保它指向src / phobos,src / druntime / import和osx / lib的正确位置 - 无论您放在哪里。就个人而言,我将dmd代码放在home的子文件夹中,不要尝试在/ 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/

我的猜测是你把dmd.conf放在/ etc中并且一直在编辑那个但是留下了原来的dmd.conf

/where_dmd_is/dmd2/osx/bin/

当然,我已经有一两次了。在任何情况下,您需要确定的第一件事是您正在编辑的dmd.conf是dmd正在使用的那个(因此请确保dmd首先看到的地方没有dmd。 conf),你需要确定的第二件事是你的dmd.conf中的路径正确指向了dmd的东西。如果这两件事是正确的,那么dmd 应该正确地找到库。

另一方面,我会指出,但是,鉴于您对使用共享库的评论,共享库目前无法正常使用D2(我不知道它们是否适用于D1,因为我不知道不要使用D1 - 我怀疑他们不会这样做。在D新闻组(http://www.digitalmars.com/NewsGroup.html)上有关于它的讨论,所以你可以看一下。这是雷达上的事情,正在研究中,但还没有充分发挥作用。此外,您可以查看新闻组以获取有关D相关问题的进一步帮助。这可能是现在最好的问题。

答案 2 :(得分:1)

如果这是一个IDE的问题,就eclipse而言,我相信要看的插件是下降的:http://www.dsource.org/projects/descent

不幸的是,我还没有尝试过,所以我不知道它有多好。根据其维基页面,它主要用于D1,但至少在某种程度上支持D2。

答案 3 :(得分:1)

如果您想快速入门(又称双击安装):D for Xcode

要求:

  • 的Xcode

就是这样。安装最新的dmd编译器,因此它也适用于终端等。

答案 4 :(得分:1)

由于我不时会在搜索结果中看到这个问题,我认为我会保持相关性。

如今;在Mountain Lion时代,Mono-D project

中存在一个更容易的解决方案

只需安装MonoDevelop(或Xamarin Studio)并按照five minute installation manual

进行操作即可

答案 5 :(得分:0)

(你可以在D 1.0上使用Phobos。无论如何......)

你在哪里安装了Phobos和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