问题 如何在Mac OS X 10.6(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不会
10795
2018-03-07 15:12
起源
答案:
好吧,我身上的持久性错误无法让问题独自解决,我终于让它发挥作用了。
在Mac OS X 10.6上运行所需的所有组件是:
- DMD编译器
- Eclipse“Galileo”(3.4版)
- 降落
- DSSS
- 改变
/usr/etc/rebuild/default
- 我一起入侵的新文件
/usr/etc/rebuild/macosx.conf
- Eclipse的全局和每个项目设置
按照这些说明操作后,Eclipse将能够在D项目上完成代码完成,并且您也可以在IDE中构建/运行。
使其运行的实际步骤如下。
- 安装digitalmars dmd 2.0编译器
- 从中下载二进制发行版 digitalmars.com (直接链接到2.041)
- 将下载的文件解压缩到
~/somefolder
(为我创建了一个〜/ somefolder / dmd2文件夹,我将在本例的持续时间内使用它。)
- 在终端(
/Applications/Utilities/Terminal.app
)将文件移动到目的地
sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/
请在输入时输入您的登录密码
- 将刚刚复制的dmd.conf移动到其位置:
sudo mv /usr/bin/dmd.conf /etc/dmd.conf
sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/
sudo mv ~/somefolder/dmd2 /usr/
- 使用您喜欢的文本编辑器进行编辑
/etc/dmd.conf
包含以下内容:
[环境]
DFLAGS = -I / usr / dmd2 / src / phobos -I / usr / dmd2 / src / druntime / import -L-L / usr / lib
- 下载并安装您最喜欢的Mac OS X版本的eclipse,其中有数百种可用于 http://www.eclipse.org/downloads/ (我为c / c ++挑选了一个可可版本)
- 安装下降(几乎 按照 维基中的正常说明)
- 运行Eclipse(不要以root身份运行)
- 去
Help
- > Install New Software
从菜单栏。 (wtf就是这样做的 Help
菜单?!)
- 复制粘贴
http://downloads.dsource.org/projects/descent/update-site
进入网址领域。
- 按照屏幕说明完成安装。
- 安装 来自sourceforge的dsss (直接链接到.dmg)
- 像其他任何一个一样使用磁盘映像上的安装程序包。
- 创建一个文件
/usr/etc/rebuild/macosx.conf
并将以下代码段粘贴到其中。 (并保存,duh)
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偏好中导航tp
D
=> Build Path
=> User Libraries
- 点击
New
,键入“std”,按 OK
选择新创建的条目,单击 Add Directory
- 导航
/usr/dmd2/src/phobos/std
并添加它。
- 设置Eclipse项目。
您必须手动为每个D项目执行此操作
- 使用“D => D Project”向导创建一个新项目(感谢Descent)
- 进入项目属性(右键单击Project Explorer中的项目,然后选择Properties)
- 在左侧列表中选择
D Build Path
并在出现的面板中选择 Include Path
标签。
- 点击
Add Library
按钮并选择 std
在向导的第二页中。
- 配置extarnal构建工具
- 去
External tools configurations...
(从构建/运行/调试工具栏中的工具箱前面的小绿色播放按钮下拉菜单)
- 在左侧单击的列表中
Program
并选择 New
从上下文菜单中。
- 给你的配置一个像“Build with dsss”这样的好名字,并设置以下选项:
- 位置:
/usr/bin/dsss
- 工作目录:项目的dsss.conf文件的完整目录
(如果您没有dsss.conf文件,请在命令行上创建一个:
dsss genconfig
)
- 参数:
build
(或重建,或清洁,或...)
- 根据需要,重复上面的步骤2和3,以获得尽可能多的构建/运行选项。
恭喜,现在一切都应该有效。
如果由于某些原因这对您不起作用,请告诉我,我会很高兴找出它出错的地方,并帮助您使其正常工作。如果有更好或更简单的方式,我也很想知道它。
11
2018-03-11 16:09
答案:
好吧,我身上的持久性错误无法让问题独自解决,我终于让它发挥作用了。
在Mac OS X 10.6上运行所需的所有组件是:
- DMD编译器
- Eclipse“Galileo”(3.4版)
- 降落
- DSSS
- 改变
/usr/etc/rebuild/default
- 我一起入侵的新文件
/usr/etc/rebuild/macosx.conf
- Eclipse的全局和每个项目设置
按照这些说明操作后,Eclipse将能够在D项目上完成代码完成,并且您也可以在IDE中构建/运行。
使其运行的实际步骤如下。
- 安装digitalmars dmd 2.0编译器
- 从中下载二进制发行版 digitalmars.com (直接链接到2.041)
- 将下载的文件解压缩到
~/somefolder
(为我创建了一个〜/ somefolder / dmd2文件夹,我将在本例的持续时间内使用它。)
- 在终端(
/Applications/Utilities/Terminal.app
)将文件移动到目的地
sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/
请在输入时输入您的登录密码
- 将刚刚复制的dmd.conf移动到其位置:
sudo mv /usr/bin/dmd.conf /etc/dmd.conf
sudo mv ~/somefolder/dmd2/osx/lib/* /usr/lib/
sudo mv ~/somefolder/dmd2 /usr/
- 使用您喜欢的文本编辑器进行编辑
/etc/dmd.conf
包含以下内容:
[环境]
DFLAGS = -I / usr / dmd2 / src / phobos -I / usr / dmd2 / src / druntime / import -L-L / usr / lib
- 下载并安装您最喜欢的Mac OS X版本的eclipse,其中有数百种可用于 http://www.eclipse.org/downloads/ (我为c / c ++挑选了一个可可版本)
- 安装下降(几乎 按照 维基中的正常说明)
- 运行Eclipse(不要以root身份运行)
- 去
Help
- > Install New Software
从菜单栏。 (wtf就是这样做的 Help
菜单?!)
- 复制粘贴
http://downloads.dsource.org/projects/descent/update-site
进入网址领域。
- 按照屏幕说明完成安装。
- 安装 来自sourceforge的dsss (直接链接到.dmg)
- 像其他任何一个一样使用磁盘映像上的安装程序包。
- 创建一个文件
/usr/etc/rebuild/macosx.conf
并将以下代码段粘贴到其中。 (并保存,duh)
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偏好中导航tp
D
=> Build Path
=> User Libraries
- 点击
New
,键入“std”,按 OK
选择新创建的条目,单击 Add Directory
- 导航
/usr/dmd2/src/phobos/std
并添加它。
- 设置Eclipse项目。
您必须手动为每个D项目执行此操作
- 使用“D => D Project”向导创建一个新项目(感谢Descent)
- 进入项目属性(右键单击Project Explorer中的项目,然后选择Properties)
- 在左侧列表中选择
D Build Path
并在出现的面板中选择 Include Path
标签。
- 点击
Add Library
按钮并选择 std
在向导的第二页中。
- 配置extarnal构建工具
- 去
External tools configurations...
(从构建/运行/调试工具栏中的工具箱前面的小绿色播放按钮下拉菜单)
- 在左侧单击的列表中
Program
并选择 New
从上下文菜单中。
- 给你的配置一个像“Build with dsss”这样的好名字,并设置以下选项:
- 位置:
/usr/bin/dsss
- 工作目录:项目的dsss.conf文件的完整目录
(如果您没有dsss.conf文件,请在命令行上创建一个:
dsss genconfig
)
- 参数:
build
(或重建,或清洁,或...)
- 根据需要,重复上面的步骤2和3,以获得尽可能多的构建/运行选项。
恭喜,现在一切都应该有效。
如果由于某些原因这对您不起作用,请告诉我,我会很高兴找出它出错的地方,并帮助您使其正常工作。如果有更好或更简单的方式,我也很想知道它。
11
2018-03-11 16:09
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相关问题的进一步帮助。这可能是现在最好问的地方。
1
2018-03-10 23:30
如果这是一个IDE的问题,就eclipse而言,我认为要看的插件是下降的: http://www.dsource.org/projects/descent
不幸的是,我还没有尝试过,所以我不知道它有多好。根据其维基页面,它主要用于D1,但至少在某种程度上支持D2。
1
2018-03-11 09:12
如果你想快速入门(又名双击安装): D代表Xcode
要求:
而已。安装最新的dmd编译器,因此它也适用于终端等。
1
2018-06-28 18:29
因为我不时地在搜索结果中看到这个问题,我想我会保持相关性。
如今;在Mountain Lion时代,一个更简单的解决方案存在于 Mono-D项目
只需安装MonoDevelop(或Xamarin Studio)并按照 五分钟安装手册
1
2017-08-06 03:39
(你可以在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
)
0
2018-03-10 20:00