8

我下载gtkD-1.5.1并解压到某个gtkD目录。我下一步该怎么做?我不明白我是否必须编译并将其链接到某个库,或者只是在我的代码中链接到它?


编辑:(@dsimcha)

dsss buildgtkD 主目录中的命令给了我这个:

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

但没有创建库?

4

5 回答 5

2

我在 Windows 上使用 DSSS 也有问题,您可以尝试使用Bud/Build

确保 build.exe 在您的路径中某处,然后在 gtkD/src/build 文件夹中打开命令行。然后运行build gtkD.brf创建GtkD.lib.

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

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

编译项目时,请使用dmd <source files> -L <C:\Path\To\File>\GtkD.lib

于 2012-02-16T20:34:39.967 回答
1

您需要将 gtkD 编译成二进制文件。执行此操作的标准方法是使用DSSS。基本上,下载并安装 DSSS,然后dsss build从 gtkD 主目录执行一个。

编辑:

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

于 2012-01-04T13:29:22.110 回答
1

构建库:我建议您查看项目的构建指南,这里是他们为构建库而布置的步骤:

  1. 获取最新稳定版本的 DSSS 并将其安装在您的系统上。
  2. [选修的]。更新项目根目录中的 dsss.conf 文件以满足您的需要。否则请注意“defaulttargets”键。如果你想要一个标准的 gtkD 构建/安装,默认就可以了。
  3. 构建 gtkD。转到项目的根目录(此文件所在的位置)并运行以下命令:

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

    $ dsss install **--prefix=/usr/local**
    

    不要忘记根据您的需要设置前缀。“/usr/local” 是一个合理的默认值,无需进一步操作即可在大多数系统上运行。如果所选前缀不在您的 PATH 上,请不要忘记更新您的环境变量。导入文件也将自动安装到所选前缀。注意:根据您的系统设置,可能需要 root 访问权限才能完成此步骤。

  5. 使用任何演示文件夹中提供的 dsss.conf 文件构建您自己的程序。特别注意用于构建演示的构建标志。“-L-ldl”在 Linux 系统上是必需的。
  6. 玩得开心!

使用库: 之后,您可以在自己的程序中以几种不同的方式使用库,具体取决于您构建它的方式

如果您使用 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();
}

您的 dss.conf 如下所示:

name = helloworld
[helloworld.d]
target = helloworld

并使用正常步骤构建和安装它:

$ dsss build
$ dsss install

编辑: : 我刚刚注意到你想直接使用 DMD,来编译你的项目,你可以使用:

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

请注意,不建议将这种构建样式用于大型项目,您应该在可行的情况下使用 DSSS。

于 2012-02-16T21:08:05.190 回答
1

Imanage 在不生成 lib 文件的情况下使用 GtkD,使用 rdmd。

  1. 您必须安装 Gtk+2 运行时
  2. 将 GtkD 源代码下载到某个目录
  3. 运行 rdmd --build-only -I/src

rdmd 将单独自动构建 GtkD 和您的项目代码,无需手动创建库和链接它。

于 2012-06-09T14:45:22.000 回答
0

似乎最新版本并不总是开箱即用,您最好通过访问http://www.dsource.org/projects/gtkd/browser/trunk并单击 Zip Archive 链接来使用主干 HEAD底部,对我有用的版本是r952

下载bud/build(版本 3.04 运行良好)并像这样调用它 build gtkD.brf

错误

无法检测版本

是由于路径中没有 dmd 引起的。

我尝试了当前最新的 gtkD 1.5.1,但后来我遇到了 typedef 问题,在我手动修复它之后,我遇到了 XOverlay 问题,经过大量搜索后,我发现它们都在 SVN 中修复,所以我得到了 trunk HEAD 和它开箱即用。

于 2012-06-01T11:30:46.983 回答