我对“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答案 0 :(得分:11)
好吧,我身上的持久性错误无法让问题独自解决,我终于让它发挥作用了。
在Mac OS X 10.6上运行所需的所有组件是:
/usr/etc/rebuild/default
/usr/etc/rebuild/macosx.conf
按照这些说明操作后,Eclipse将能够在D项目上完成代码完成,并且您也可以在IDE中构建/运行。
使其运作的实际步骤如下。
~/somefolder
(为我创建了一个〜/ somefolder / dmd2文件夹,我将在本例中使用该文件夹。)/Applications/Utilities/Terminal.app
)中将文件移至目的地sudo mv ~/somefolder/dmd2/osx/bin/* /usr/bin/
在询问时输入您的登录密码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
Help
- >菜单栏中显示Install New Software
。 (wtf会在Help
菜单中执行此操作吗?!)http://downloads.dsource.org/projects/descent/update-site
复制/粘贴到网址字段中。/usr/etc/rebuild/macosx.conf
并将以下代码段粘贴到其中。 (并保存,呃)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
D
=> Build Path
=> User Libraries
New
,输入“std”,按OK
选择新创建的条目,点击Add Directory
/usr/dmd2/src/phobos/std
并添加。D Build Path
,然后在显示的面板中选择Include Path
标签。Add Library
按钮,然后在向导的第二页中选择std
。External tools configurations...
(从小绿色播放按钮的下拉列表中,在构建/运行/调试工具栏中,工具箱前面有工具箱)Program
,然后从上下文菜单中选择New
。/usr/bin/dsss
dsss genconfig
)build
(或重建,或清理,或......)恭喜,现在一切都应该有效。
如果出于某种原因这对你不起作用,请告诉我,我会很高兴找出它出错的地方,并帮助你让它发挥作用。如果有更好或更简单的方式,我也很想知道它。
答案 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)
答案 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
)