d - 在 Ubuntu 10.04 上设置有效的 D2.x 工具链(使用 gtkd)

标签 d gtkd

我已经玩了几天 D,并且对它感到非常兴奋,直到我尝试让 gtkd 工作。我现在已经浪费了三天的大部分时间来尝试进行工作设置,并且开始变得(阅读;很久以前)有点沮丧。我想知道在我放弃之前是否有人可以提供帮助。我在网上找到的很多信息都已经过时了,所以我不确定我的想法是否正确。

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

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

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

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

此设置将编译 D,但是当我安装 gtkd(使用 dsss)时,它编译了,但在尝试使用它编译任何内容时出现了各种错误(与探戈相关)。好吧,正如我提到的,我没有这些库,所以这应该不会是意外的。我尝试手动安装探戈库,但仍然遇到大量错误,最后求助于 dsss net install tango这警告我,我将无法回到火卫一(这让我感到困惑,因为正如我所提到的,我认为两者可以一起使用)无论如何,我继续进行,它完全搞砸了我的设置。我现在无法编译任何 D。

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

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

  1. 我从存储库安装了 gdc
  2. 我手动安装了 dsss

我现在了解到最新的探戈不能与 gdc 一起使用(不确定这是否属实),所以我

  1. 获取 dmd 的 deb 并安装它。
  2. 手动安装最新的 tango(库和 header )。
  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)。

最佳答案

  1. Tango 不适用于 D2。很久以前就进行了一些移植工作,但是遇到了困难,目前还不清楚这是否会真正完成。 OTOH 用于 D2 的 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)。

关于d - 在 Ubuntu 10.04 上设置有效的 D2.x 工具链(使用 gtkd),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3897671/

相关文章:

d - gtkd addOnClicked/g_signal_connect 失败

gtkentry 焦点行为

DUB:创建两个具有共同代码库的可执行文件

D 类、OOP 和 GTKd 笔记本

c - OpenGL如何从程序中设置着色器纹理(sampler2D)

multithreading - D 中数组的线程安全性?

d - 无法编译 GtkD SourceView 代码

d - GtkD(D语言的Gtk+绑定(bind))为什么要编译它?

D 中的结构需要零初始化吗?

DMD Phobos 到 Tango 的转换 : va_arg - what is it? 我该如何替换它?