我已经对“D”感兴趣了几年,最近决定开始真正玩它 . 我已经能够很容易地掌握基础知识,我喜欢这种语言的基本功能集,我读的越多,我得到的印象越深刻 .
现在,我对编写自定义Web应用程序服务器作为业余爱好项目非常感兴趣,我希望它是一个简单的二进制文件,使用动态链接库来存储实际的Web应用程序 . 我相信D是这次冒险的完美语言 .
只有一个大问题......在过去的几天里,我完全无法使用任何类型的IDE设置 . 我可以在命令行上编译和运行一切,但我在任何IDE中都可以尝试(Code :: Blocks,eclipse血统,带D插件的Xcode,甚至是Windows XP上VirtualBox中运行的Windows D-IDE) Pro)唯一发生的事情是:
object.d: Error: module object cannot read file 'object.d'
经过两天尝试不同的事情并遵循教程,这真的让我感到紧张 . 我想学习有效地使用D,但是我需要一些舒适的工具链,包括编辑器中的代码完成,如果我想保持我的理智,我显然这样做 .
[编辑:重点强调 really 重要位]
Is there anyone that can help me set up eclipse or (preferably) netbeans (but no plugin seems to be publicly available) to give me compile and run abilities in the IDE, along with code completion? on my Mac, running Mac OS X 10.6?
我想使用phobos库(以及一个2.0编译器),但我真的不在乎它的dmd或gdmd (gdcmac) .
[加成]
我相信我们可以假设我的dmd编译器安装正常,因为它可以从命令行运行 . 我只是不想在命令行中使用它,因为它很繁琐 . 问题是关于和IDE,编译器工作,它只是IDE不会
6 回答
好吧,我身上的持久性错误无法让问题独自解决,我终于开始工作了 .
在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(direct link to 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
以包含以下内容:从http://www.eclipse.org/downloads/(我为c / c选择了可可版本)中下载并安装了您最喜欢的Mac OS X版本的eclipse
安装下降( almost ,根据the normal instructions in the wiki)
运行Eclipse(不要以root身份运行)
从菜单栏中
goto
Help
- >Install New Software
. (wtf是在Help
菜单中做的吗?!)将
http://downloads.dsource.org/projects/descent/update-site
复制/粘贴到url字段中 .按照屏幕说明完成安装 .
安装dsss from sourceforge(direct link to .dmg)
在任何其他磁盘映像上使用安装程序包 .
创建一个文件
/usr/etc/rebuild/macosx.conf
并将以下代码段粘贴到其中 . (并保存,duh)[编译]
cmd = dmd -version = MacOSX -c $ i
标志= $ I
INCDIR = -I $ I
LIBDIR = -L-L $我
优化= -O
版本= -version = $ I
[链接]
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 $我
LIB = -L-1 $ I
标志= -L $ I
[liblink]
安全= YES
oneatatime = YES
cmd =如果[! -z“$ o”];然后ar rc $ o $ i;科幻
LIBDIR =
LIB =
标志=
[postliblink]
CMD = ranlib的$ I
[shliblink]
shlibs的=无
[dyliblink]
dylibs =无
将
/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项目 . You have to do this manually for every D project you'll make
使用"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,以获得尽可能多的构建/运行选项 .
恭喜,现在一切都应该有效 .
如果由于某种原因这对您不起作用,请告诉我,我会很高兴找出它出错的地方并帮助您使其正常工作 . 如果有更好或更简单的方式,我也很想知道它 .
清楚地表明它无法正确找到库 . 所以,第一个问题是你的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.conf放在/ etc中并且一直在编辑那个但是把原来的dmd.conf留在了
当然,我正在编辑的是dmd正在使用的那个(因此请确保dmd首先看到的地方没有dmd.conf),而你需要确定的第二件事就是路径在你的dmd.conf正确指向dmd的东西 . 如果这两件事是正确的,那么dmd应该正确找到库 .
在旁注中,我会指出,但是,鉴于您关于想要使用共享库的评论是共享库不使用D1 - 我怀疑它们不会这样做 . 在D新闻组(http://www.digitalmars.com/NewsGroup.html)上有关于它的讨论,所以你可以看看那里 . 这是一个关注的问题,正在研究中,但是现在可能不是最好的问题 .
如果这是一个IDE的问题,就eclipse而言,我相信要看的插件是下降的:http://www.dsource.org/projects/descent
不幸的是,我还没有尝试过,所以我不知道它有多好 . 根据其维基页面,它主要用于D1,但至少在某种程度上支持D2 .
如果您想快速入门(又名双击安装):D for Xcode
要求:
而已 . 安装最新的dmd编译器,因此它也适用于终端等 .
因为我不时地在搜索结果中看到这个问题,我想我会保持相关性 .
如今;在Mountain Lion时代,Mono-D project存在一个更容易的解决方案
只需安装MonoDevelop(或Xamarin Studio)并按照five minute installation manual
(你可以在D 1.0上使用Phobos . 无论如何...)
你在哪里安装了Phobos和druntime标头?
通常我将它们复制到
/usr/include
.(另外,尝试编辑
dmd.conf
以使用绝对路径:)