在Ubuntu 10.04上设置工作D2.x工具链(使用gtkd)

时间:2010-10-09 20:07:23

标签: d gtkd

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

剩下的就是我到目前为止所尝试的内容,如果您有快速解决方案,可能不需要阅读它,所以请随意跳转到... [跳转到此处] < / strong>

所以,首先我需要知道,探戈实际上是否可以与D2.0一起使用,我相信它不是最初的,但现在D2.x是这样的,你可以使用探戈和phobos彼此。如果这不是真的,那么我想我已经陷入了第一道障碍,这是一个非首发。

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

  1. 我从ubuntu存储库
  2. 安装了gdc
  3. 我从repos安装了libtango-headers(注意,只有标题,没有可用的库,所以没什么帮助)
  4. 我手动安装了dsss
  5. 这个设置会编译D但是当我来安装gtkd(带有dsss)时,它编译了但是在尝试使用它编译任何东西时我得到了各种错误(与tango有关)。好吧,正如我所提到的,我没有libs,所以这不应该是意料之外的。我试图手动安装探戈库但仍然有很多错误,最后使用dsss net install tango警告我,我不能回到phobos(这让我很困惑,因为我有提到我认为这两个可以并排使用)无论如何,我继续前进,它完全搞砸了我的设置。我现在无法编译任何D.

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

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

    1. 我从repos安装了gdc
    2. 我手动安装了dsss
    3. 我现在读到最新的探戈不适用于gdc(不确定这是否属实)所以我

      1. 得到了dmd的deb并安装了它。
      2. 手动安装了latested tango(libs和header)。
      3. 使用dsss安装gtkd
      4. 现在我无法识别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。根据{{​​3}}的说明获得了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)。

2 个答案:

答案 0 :(得分:6)

  1. Tango不适用于D2。很久以前,人们已经付出了一些努力来移植它,但是这种方式已经碰壁了,目前还不清楚这是否真的要完成。对于D2来说,D2的OTOH Phobos比Phobos 更好,因此Tango的缺乏并不像听起来那么糟糕。

  2. GDC支持D2的古老版本。 gtkD绝对没有机会编译它。您应该使用参考DMD编译器。

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

答案 1 :(得分:4)

如果您希望dmd将参数传递给链接器,则必须使用-L作为前缀。 我认为对于gtkd你需要链接到gtkd库和libdl。

-L-lgtkd -L-ldl