我已经和D一起玩了几天而且对此感到非常兴奋,直到我试图让gtkd工作。我现在浪费了3天中最好的部分试图获得一个工作设置,并开始得到(阅读;很久以前得到)有点士气低落。我想知道在我放弃之前是否有人可以提供帮助。我在网上找到的很多信息已经过时了,所以我不确定我是否认为这甚至是可能的。
剩下的就是我到目前为止所尝试的内容,如果您有快速解决方案,可能不需要阅读它,所以请随意跳转到... [跳转到此处] < / strong>
所以,首先我需要知道,探戈实际上是否可以与D2.0一起使用,我相信它不是最初的,但现在D2.x是这样的,你可以使用探戈和phobos彼此。如果这不是真的,那么我想我已经陷入了第一道障碍,这是一个非首发。
到目前为止我采取的步骤。
这个设置会编译D但是当我来安装gtkd(带有dsss)时,它编译了但是在尝试使用它编译任何东西时我得到了各种错误(与tango有关)。好吧,正如我所提到的,我没有libs,所以这不应该是意料之外的。我试图手动安装探戈库但仍然有很多错误,最后使用dsss net install tango
警告我,我不能回到phobos(这让我很困惑,因为我有提到我认为这两个可以并排使用)无论如何,我继续前进,它完全搞砸了我的设置。我现在无法编译任何D.
抱歉,我无法更明确地说明我在上一节中遇到的错误,老实说我不记得了。
无论如何,我删除了我安装的所有内容。并重新开始。
我现在读到最新的探戈不适用于gdc(不确定这是否属实)所以我
现在我无法识别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)。
答案 0 :(得分:6)
Tango不适用于D2。很久以前,人们已经付出了一些努力来移植它,但是这种方式已经碰壁了,目前还不清楚这是否真的要完成。对于D2来说,D2的OTOH Phobos比Phobos 更好,因此Tango的缺乏并不像听起来那么糟糕。
GDC支持D2的古老版本。 gtkD绝对没有机会编译它。您应该使用参考DMD编译器。
通常,在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