我已下载gtkD-1.5.1
并已解压缩到某个gtkD
目录。接下来我该怎么办?我不明白我是否必须编译并将其链接到某个lib或只是在我的代码中链接到它?
编辑:(@ 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
但是没有创建lib?
答案 0 :(得分: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
答案 1 :(得分:1)
您需要将gtkD编译为二进制文件。执行此操作的标准方法是DSSS。基本上,下载并安装DSSS,然后从主gtkD目录中执行dsss build
。
编辑:
使用DSSS构建gtkD之后,gtkD目录中会有一堆.lib文件。您将这些静态链接到您的应用程序中。此外,您需要在Windows安装中安装GTK +库。
答案 2 :(得分:1)
构建图书馆: 我建议看看build guidelines for the project这里是构建库的步骤:
- 获取最新的稳定版DSSS并将其安装在您的系统上。
- [可选]。更新项目根目录中的dsss.conf文件 适合您的需求。否则要注意'defaulttargets' 键。如果您需要标准的gtkD构建/安装,则为默认值 很好。
构建gtkD。转到项目的根目录(此文件所在的位置) 找到并运行以下命令:
$ dsss build
您现在可以将库安装到实时文件系统。来自 项目的根目录,运行:
$ dsss install **--prefix=/usr/local**
不要忘记根据需要设置前缀。 “在/ usr /本地” 是一个理智的默认值,应该可以在大多数系统上运行而无需进一 行动。如果您选择的前缀不在PATH上,请不要忘记 更新您的环境变量。导入文件也会得到 自动安装到所选前缀。注意:root访问权限可以 需要根据您的系统设置完成此步骤。
- 使用任何提供的dsss.conf文件构建您自己的程序 的演示文件夹。特别注意以前的buildflags 建立演示。 Linux系统上需要“-L-ldl”。
- 玩得开心!
醇>
使用资料库: 之后,您可以在自己的程序depending on how your building it中以几种不同的方式使用库:
如果您使用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。
答案 3 :(得分:1)
Imanage使用GtkD而不生成lib文件,使用rdmd。
rdmd将单独自动生成GtkD和您的项目代码,省去了制作库并手动链接的需要。
答案 4 :(得分:0)
似乎最新版本并不总是开箱即用,你最好使用主干HEAD,转到http://www.dsource.org/projects/gtkd/browser/trunk并点击底部的Zip Archive链接,这个版本对我有用是r952。
下载bud/build(版本3.04工作正常)并将其称为此类 build gtkD.brf
错误
无法检测版本
是由路径中没有dmd引起的。
我尝试了当前最新的gtkD 1.5.1,但后来我遇到了typedef问题,手动修复后我得到了XOverlay问题,经过大量搜索后我发现它们都修复了SVN所以我得到了主干HEAD,开箱即用。