我试图使用gtkd库编译一个hello world程序。
我正在使用dmd编译器(安装在我的~/目录中),并且我已经检查过该编译器是否工作正常。
以防万一,这是我的源代码:

//pragma(lib, "gtkd");
//pragma(lib, "dl");

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();
}

pragma被注释掉,因为(如果我理解正确的话)它们只做-l-l标志,也没有让我更接近解决方案。
无论如何,在我保存文件之后,我运行:
dmd hello.d -L-lgtkd -L-ldl

并得到以下错误:
/usr/bin/ld: cannot find -lgtkd
collect2: error: ld returned 1 exit status
--- errorlevel 1

我已经将libgtkd-3.a、libgtkdgl-3.a和libgtkdsv-3.a复制到/usr/lib中,但是终端的输出保持不变。
我知道链接器找不到我的文件,但我不知道还有什么办法可以帮助他找到。
有关我的安装的更多信息,我已经完全按照this post中的设置了所有内容。
不知道这是否重要,但我的电脑正在运行crunchbang,一个基于debian wheezy的发行版。
提前谢谢你,

最佳答案

dmd hello.d -L-lgtkd -L-ldl

这将尝试查找libgtkd.a,但您没有libgtkd.a,您有libgtkd-3.a,因此必须使用:
dmd hello.d -L-lgtkd-3 -L-ldl

关于linux - 如何在Linux上使用gtkd,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29120679/

10-12 00:44