我正在尝试使用 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 的发行版。 提前致谢, R
最佳答案
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/