Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ubuntu10.04上设置工作D2.x工具链(带gtkd)_D_Gtkd - Fatal编程技术网

在Ubuntu10.04上设置工作D2.x工具链(带gtkd)

在Ubuntu10.04上设置工作D2.x工具链(带gtkd),d,gtkd,D,Gtkd,我已经和D玩了几天了,对此我非常兴奋,直到,也就是说,我试图让gtkd工作。我现在已经浪费了三天的大部分时间来尝试一个工作设置,我开始(阅读;很久以前)有点泄气。在我放弃之前,我想知道是否有人能帮我。我能在网上找到的很多信息都过时了,所以我不确定我是否认为这是可能的 这篇文章的其余部分就是我到目前为止所尝试的内容,如果您有快速的解决方案,您可能不需要阅读它,所以请随时跳到。。。[跳到这里] 所以,首先我需要知道,tango是否真的可以与D2.0一起使用,我相信它最初不是,但现在D2.x可以让ta

我已经和D玩了几天了,对此我非常兴奋,直到,也就是说,我试图让gtkd工作。我现在已经浪费了三天的大部分时间来尝试一个工作设置,我开始(阅读;很久以前)有点泄气。在我放弃之前,我想知道是否有人能帮我。我能在网上找到的很多信息都过时了,所以我不确定我是否认为这是可能的

这篇文章的其余部分就是我到目前为止所尝试的内容,如果您有快速的解决方案,您可能不需要阅读它,所以请随时跳到。。。[跳到这里]

所以,首先我需要知道,tango是否真的可以与D2.0一起使用,我相信它最初不是,但现在D2.x可以让tango和phobos一起使用。如果这不是真的,那么我想我在第一个跨栏时摔倒了,这是一个非首发

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

  • 我从ubuntu存储库安装了gdc
  • 我从repos安装了libtango头文件(注意,只有头文件,没有可用的libs,所以没有太多帮助)
  • 我手动安装了dsss
  • 这个设置会编译D,但当我安装gtkd(使用dsss)时,它会编译,但当我尝试使用它编译任何东西时,会出现各种各样的错误(与tango相关)。嗯,正如我提到的,我没有LIB,所以这不应该是意外的。我试图手动安装tango LIB,但仍然出现大量错误,最后求助于
    dsss net install tango
    ,该软件警告我,我将无法回到phobos(正如我所提到的,这让我感到困惑,我认为两者可以一起使用),我继续,它完全破坏了我的设置。我现在无法编译任何D

    对不起,我不能更明确地说明我在最后一节中犯了什么错误,我真的不记得了

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

  • 我从repos安装了gdc
  • 我手动安装了dsss
  • 我现在读到最新的tango不适用于gdc(不确定这是不是真的),所以我

  • 得到了dmd的deb并安装了它
  • 手动安装最新的tango(libs和headers)
  • 使用dsss安装gtkd
  • 现在我无法让dsss识别dmd,所以只能使用gdc。然而,这并没有找到探戈。如果我直接使用dmd,它会发现tango和gtkd,但我会发现关于
    volatile
    语句被弃用的错误。D2.x中的某些东西显然是正确的,这让我回到了“tango甚至得到了支持”

    天哪,我糊涂了

    [跳到这里]

    如果有人能一步一步地指导我如何设置工作装置,我将永远感激

    谢谢,T

    更新:“我们到了!”

    因此,我从我的主目录下载了dmd.2.049.zip,并将其解压缩到主目录,然后执行了一个
    导出路径=$PATH:~/dmd2/linux/bin
    (多亏了dsimcha)

    忘记了
    dsss
    。按照上的说明获得了gtkd的svn版本。编辑
    GNUmakefile
    将前缀更改为
    /home/me/dmd2/linux
    ,并执行
    进行安装

    编辑了
    ~/dmd2/linux/bin/dmd.conf
    ,因此包含的包含路径
    。/include
    (gtkD库放在
    。/lib
    中,因此我不需要编辑库路径)

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

  • Tango不适用于D2。很久以前就有人试图移植它,但这种做法遇到了麻烦,目前还不清楚这是否真的会完成。D2的奥托火卫一要比D1的火卫一好得多,所以缺少探戈并不像听起来那么糟糕

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

  • 通常,在Linux上设置DMD的正确方法是将DMD.2.0xx.zip解压到主目录中,然后执行
    导出路径=$PATH:~/dmd2/Linux/bin
    ,以确保DMD可执行文件位于您的路径中。然后一切都应该正常(使用DMD2和火卫一)


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

    -L-lgtkd -L-ldl
    

    谢谢,这让我明白了很多。我现在感觉好多了:)。你知道如何让gtkd工作吗。我现在就用Phobos编译了
    dsss
    ,并按照您的建议设置了
    dmd
    。我尝试将它(gtkd)安装到
    prefix=~/dmd2/linux/
    中,并编辑
    dmd.conf
    以更改包含目录,但没有成功。好吧,幸运的是,我在帖子中添加了一个编辑来解释当前情况;现在我发现了链接器错误。太棒了,谢谢。我曾见过-L标志,并尝试过
    -Lgtkd
    -Llgtkd
    ,但从未想过
    -L-L…
    。现在一切都好了,太棒了!我也有同样的问题,正在尝试我能想到的-Lgtkd的所有变体。我从来没有想过要尝试-L-L。。。(而且文档很难找到!)