我是D的新手,想要尝试gtkd.我在arch linux上,安装了dmd2-complete(dmd 2.0.56)和gtkd-svn(针对D2构建的gtkd)软件包.我还验证了D本身是否正常工作(编译并运行了一个基本writefln("hello world");程序).
现在我正试图让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();
}
Run Code Online (Sandbox Code Playgroud)
具体来说,我需要将哪些选项传递给dmd才能将其链接起来?几乎所有我能找到的文档都完全跳过了这个.
该gtkd-svn软件包在/ usr/lib中安装了以下内容:
/usr/lib/libgtkd.a
/usr/lib/libgtkdgl.a
/usr/lib/libgtkdsv.a
Run Code Online (Sandbox Code Playgroud)
好的,所以我在"相关问题"侧边栏中找到了答案.离开这里,因为谷歌在我搜索时没有提出另一个线程,并且它可能会有更好的运气.您需要传递链接器选项-L-l,特别是在这种情况下
dmd -L-lgtkd -L-ldl hellogtk.d
Run Code Online (Sandbox Code Playgroud)
一切都很好.