Windows 7 如何在Win7和dmd(D2)中使用gtkD?

Windows 7 如何在Win7和dmd(D2)中使用gtkD?,windows-7,d,dmd,gtkd,Windows 7,D,Dmd,Gtkd,我下载了gtkD-1.5.1并解压缩到一些gtkD目录。我下一步做什么?我不明白我是必须编译并将其链接到某个库,还是只在代码中链接到它 编辑:(@dsimcha) gtkD主目录中的命令dsss build告诉我: Could not detect versions. Could not detect versions. Could not detect versions. Could not detect versions. Could not detect versions. undemo

我下载了
gtkD-1.5.1
并解压缩到一些
gtkD
目录。我下一步做什么?我不明白我是必须编译并将其链接到某个库,还是只在代码中链接到它


编辑:(@dsimcha)

gtkD主目录中的命令
dsss build
告诉我:

Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
undemofy

Could not detect versions.
Could not detect versions.
atk => DO-atk

cairo => DO-cairo

gdk => DO-gdk

gdkpixbuf => DO-gdkpixbuf

gio => DO-gio

glade => DO-glade

glib => DO-glib

gobject => DO-gobject

gthread => DO-gthread

gtk => DO-gtk

gtkc => DO-gtkc

pango => DO-pango

但是没有创建库?

您需要将gtkD编译成二进制文件。这样做的标准方法是使用。基本上,下载并安装DSSS,然后从gtkD主目录执行
DSSS构建

编辑:


使用DSSS构建gtkD后,gtkD目录中将有一堆.lib文件。您可以将这些静态链接到应用程序中。此外,您需要在Windows安装中安装GTK+库。

我在Windows上使用DSSS时也遇到问题,您可以尝试使用

确保build.exe位于路径的某个位置,然后在gtkD/src/build文件夹中打开一个命令行。然后运行
buildgtkd.brf
创建
gtkD.lib

根据您的DMD版本,您将得到很多错误。我得到的大多数是typedef被弃用了。任何发生这种情况的文件(它会告诉你)我只是将typedef重构为alias,它工作得很好。我遇到的另一个错误是
src/gtk/Toolbar.d
,以及一个模糊的虚拟函数
getOrientation()
。要解决此问题,请进入
src/gtk/OrientableIF.d
/src/gtk/ToolShellIF.d
并注释掉getOrientation方法

使用最新版本的dmd(2.059),
glib/DateTime.d
将无法编译。要编译此文件,只需注释掉方法
override hash\u t toHash()


编译项目时,请使用
dmd-L\GtkD.lib
构建库: 我建议大家看一看,以下是他们构建库的步骤:

  • 获取最新稳定版本的DSSS,并将其安装到您的系统上
  • [可选]。将项目根目录中的dsss.conf文件更新为 适合你的需要。否则请注意“defaulttargets” 钥匙如果您想要标准gtkD构建/安装,则默认设置为 你很好
  • 构建gtkD。转到项目的根目录(此文件所在的位置) 定位)并运行以下命令:

    $ dsss build
    
  • 现在,您可以将这些库安装到实时文件系统中。从 项目的根目录,运行:

    $ dsss install **--prefix=/usr/local**
    
    别忘了根据需要设置前缀。“/usr/local” 是一个正常的默认值,应该可以在大多数系统上工作,而无需进一步 行动。如果选择的前缀不在您的路径上,请不要忘记 更新您的环境变量。导入文件也将获得 自动安装到所选前缀。注意:根目录访问可能会失败 需要根据您的系统设置完成此步骤

  • 使用提供的dsss.conf文件从任何 演示文件夹的名称。请特别注意用于 构建演示。“-L-ldl”在Linux系统上是必需的
  • 玩得开心 使用库: 之后,您可以在自己的程序中以几种不同的方式使用该库:

    如果您使用DSSS构建自己的项目,那么您需要做的就是导入代码中的模块,如下所示:

    import gtk.MainWindow;
    import gtk.Label;
    import gtk.Main;
    
    void main(string[] args)
    {
        Main.init(args);
        MainWindow win = new MainWindow("Hello World");
        win.setDefaultSize(200, 100);
        win.add(new Label("Hello World"));
        win.showAll();
    
        Main.run();
    }
    
    name = helloworld
    [helloworld.d]
    target = helloworld
    
    您的dss.conf如下所示:

    import gtk.MainWindow;
    import gtk.Label;
    import gtk.Main;
    
    void main(string[] args)
    {
        Main.init(args);
        MainWindow win = new MainWindow("Hello World");
        win.setDefaultSize(200, 100);
        win.add(new Label("Hello World"));
        win.showAll();
    
        Main.run();
    }
    
    name = helloworld
    [helloworld.d]
    target = helloworld
    
    并使用正常步骤进行构建和安装:

    $ dsss build
    $ dsss install
    
    编辑:: 我刚刚注意到,您希望直接使用DMD来编译您的项目,您可以使用:

    dmd helloworld.d -ofhelloworld -L+gtk.lib
    

    请注意,对于较大的项目,不建议使用这种构建样式,只要可行,您就应该使用DSSS。

    最新版本似乎并不总是开箱即用,您最好使用trunk HEAD,方法是转到并单击底部的Zip Archive链接,对我有效的版本是

    下载(3.04版运行良好)并这样称呼它 构建gtkD.brf

    错误

    无法检测版本

    是由于路径中没有dmd造成的


    我尝试了当前最新的gtkD 1.5.1,但后来我遇到了typedef问题,在手动修复后,我遇到了XOverlay问题,经过大量搜索,我发现它们都在SVN中修复了,因此我得到了trunk HEAD,并且它是现成的。

    I使用gtkD而不生成lib文件,使用rdmd

  • 您必须安装Gtk+2运行时
  • 将GtkD源代码下载到某个目录
  • 运行rdmd--仅构建-I/src
  • rdmd将只自动构建GtkD和您的项目代码,而不需要创建LIB并手动链接它