6

几天来,我一直在玩 D,并且对此感到非常兴奋,直到,也就是说,我试图让 gtkd 工作。我现在浪费了 3 天中最好的部分来尝试设置工作,并且开始变得(阅读;很久以前)有点士气低落。在我放弃之前,我想知道是否有人可以提供帮助。我可以在网上找到的很多信息都已经过时了,所以我不确定我是否认为这是可能的。

剩下的只是我到目前为止所尝试的,如果你有一个快速的解决方案,你可能不需要阅读它,所以请随意跳到... [跳到这里]

所以,首先我需要知道,tango 是否真的可以与 D2.0 一起使用,我相信它最初不是,但现在 D2.x 是这样的,你可以同时使用 tango 和 phobos。如果这不是真的,那么我想我已经在第一个障碍上掉下来了,这是一个非首发。

到目前为止我已经采取的步骤。

  1. 我从 ubuntu 存储库安装了 gdc
  2. 我从 repos 安装了 libtango-headers (注意,只有头文件,没有可用的库,所以帮助不大)
  3. 我手动安装了dsss

这个设置可以编译 D,但是当我开始安装 gtkd(使用 dsss)时,它编译了,但是在尝试使用它编译任何东西时我得到了各种错误(与探戈有关)。好吧,正如我提到的,我没有库,所以这不应该是意外的。我尝试手动安装探戈库,但仍然遇到很多错误,最后求助于dsss net install tango警告我无法回到 phobos (正如我所提到的,这让我感到困惑,我认为这两个可以一起使用)无论如何,我继续进行,它完全搞砸了我的设置。我现在无法编译任何 D。

抱歉,我无法更明确地说明我在上一节中遇到的错误,老实说,我不记得了。

无论如何,我删除了我安装的所有东西。并重新开始。

  1. 我从 repos 安装了 gdc
  2. 我手动安装了 dsss

我现在读到最新的探戈不适用于 gdc(不确定这是否属实)所以我

  1. 得到了 dmd 的 deb 并安装了它。
  2. 手动安装了最新的 tango(库和头文件)。
  3. 用 dsss 安装 gtkd

现在我无法让dsss识别dmd,所以只能使用gdc。然而,这并没有找到探戈。如果我直接使用 dmd,它会找到 tango 和 gtkd,但我会收到有关volatile不推荐使用的语句的错误。在 D2.x 中显然是正确的,这让我回到“甚至支持探戈”。

天哪,我很困惑!

[跳转到这里]

如果有人可以逐步指导我如何设置工作设置,我将永远感激不尽!

谢谢,T。

更新: “我们在那里!”

所以我从http://www.digitalmars.com/d/download.html下载了 dmd.2.049.zip并解压到我的主目录并做了一个export PATH = $PATH:~/dmd2/linux/bin(感谢 dsimcha)。

忘了dsss根据http://www.dsource.org/projects/gtkd/wiki/UsingSubversion的说明获得 gtkd 的 svn 版本。编辑GNUmakefile将前缀更改为/home/me/dmd2/linux并做了一个make install.

编辑~/dmd2/linux/bin/dmd.conf所以包含路径../include(放入了 gtkD 库,../lib所以我不需要编辑库路径)。

现在终于用 gtkD 编译了,我需要链接 libgtkd 和 libdl,这是由dmd mydprog.d -L-lgtkd -L-ldl(感谢 jpf)完成的。

4

2 回答 2

6
  1. Tango 不适用于 D2。很久以前就有一些努力移植它,但是这种碰壁,目前还不清楚这是否真的会完成。D2 的 OTOH Phobos比 D1 的 Phobos好得多,因此缺少 Tango 并没有听起来那么糟糕。

  2. GDC 支持旧版本的 D2。gtkD 绝对不可能用它编译。您应该使用参考 DMD 编译器。

  3. 通常,在 Linux 上设置 DMD 的正确方法是简单地将 dmd.2.0xx.zip 解压缩到您的主目录中,export PATH = $PATH:~/dmd2/linux/bin然后确保 DMD 可执行文件在您的路径中。然后一切正常(使用 DMD2 和 Phobos)。

于 2010-10-09T23:11:35.070 回答
4

如果您希望 dmd 将参数传递给链接器,您必须在它们前面加上 -L。我认为对于 gtkd,您需要链接到 gtkd 库和 libdl。

-L-lgtkd -L-ldl
于 2010-10-10T07:40:59.710 回答