gtkd入门

gtkd入门,d,archlinux,gtkd,D,Archlinux,Gtkd,我是D新手,想尝试gtkd。我在arch linux上安装了dmd2 complete(dmd 2.0.56)和gtkd svn(gtkd基于D2构建)软件包。我还验证了D本身工作正常(编译并运行了一个基本的writefln(“helloworld”);程序) 现在,我正在尝试启动并运行gtkd,并且在编译和链接示例中的基本helloworld程序时遇到了困难 import gtk.MainWindow; import gtk.Label; import gtk.Main; void main

我是D新手,想尝试gtkd。我在arch linux上安装了
dmd2 complete
(dmd 2.0.56)和
gtkd svn
(gtkd基于D2构建)软件包。我还验证了D本身工作正常(编译并运行了一个基本的
writefln(“helloworld”);
程序)

现在,我正在尝试启动并运行gtkd,并且在编译和链接示例中的基本helloworld程序时遇到了困难

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();
}
具体来说,我需要向dmd传递哪些选项才能将其链接到链接?我能找到的几乎所有文档都完全忽略了这一点

gtkd svn
软件包在/usr/lib中安装了以下内容:

 /usr/lib/libgtkd.a
 /usr/lib/libgtkdgl.a
 /usr/lib/libgtkdsv.a

dmd在-L标志之后将标志传递给链接器

所以我不能确定,因为我没有使用gtkD,而是类似-L-lgtkd的东西 我们应该做到这一点

如果没有,请使用-L-lgtkdg1之类的工具。。其中一个肯定是对的

编辑:只是添加额外的信息。。。 链接器将自动搜索/usr/lib和其他一些地方。
我相信链接器操作与C链接过程相同,因此可以从C链接的方式中收集更多信息。

好的,因此我在“相关问题”侧栏中找到了答案。把这个放在这里,因为谷歌在我搜索的时候没有提出这个问题,它可能会有更好的运气。您需要以
-L-L
的形式传入链接器选项,特别是在本例中

dmd -L-lgtkd -L-ldl hellogtk.d
而且一切都很好。

您还可以使用:

我在Gentoo上编程,手动编译dmd和gtkD。
因此,在开始时,我键入:

echo $PKG_CONFIG_PATH
那对我没什么好处。
我这样做: 在
~/.bashrc:

( ... )
export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig
因为我们需要的一切都在这里。
然后我键入:

pkg-config gtkd-2 --cflags --libs
以及我复制并粘贴到的输出:
/etc/dmd.conf

至第节:“[环境]”
到变量:“DFLAGS”(在末尾)。
清洁安装dmd和gtkD(通过复制和粘贴)应如下所示:
(/etc/dmd.conf)

现在我可以像这样编译我的D程序:
dmd myprog.d

就这些!

附笔。

对不起,我的英语不好。

谢谢,是-L-L语法把我绊倒了!我尝试了我能想到的-Lgtkd的每一种变体。
pkg-config gtkd-2 --cflags --libs
( ... )
[Environment]
DFLAGS=-I/usr/include/phobos2 -I/usr/include/druntime -L--no-warn-search-mismatch -L--    export-dynamic -L-lrt -I/usr/local/include/d/gtkd-2/ -L-L/usr/local/lib/ -L-lgtkd-2 -L-ldl