GtkD未定义引用

GtkD未定义引用,d,dmd,gtkd,D,Dmd,Gtkd,我的代码: import gtk.MainWindow; import gtk.Main; void main(string[] args) { Main.init(args); auto win=new MainWindow("Hello World"); win.setDefaultSize(200,100); win.showAll(); Main.run(); } 当我尝试使用DMD(或gdc)编译时,会出现以下错误: dmd ./test.d

我的代码:

import gtk.MainWindow;
import gtk.Main;

void main(string[] args)
{
    Main.init(args);
    auto win=new MainWindow("Hello World");
    win.setDefaultSize(200,100);
    win.showAll();
    Main.run();
}
当我尝试使用DMD(或gdc)编译时,会出现以下错误:

dmd ./test.d -L-L/usr/local/include/d/gtkd-2/lib
test.o:(.data+0x10): undefined reference to `_D3gtk10MainWindow12__ModuleInfoZ'
test.o:(.data+0x18): undefined reference to `_D3gtk4Main12__ModuleInfoZ'
test.o: In function `_Dmain':
./test.d:(.text._Dmain+0x15): undefined reference to `_D3gtk4Main4Main4initFKAAyaZv'
./test.d:(.text._Dmain+0x1b): undefined reference to `_D3gtk10MainWindow10MainWindow7__ClassZ'
./test.d:(.text._Dmain+0x3a): undefined reference to `_D3gtk10MainWindow10MainWindow6__ctorMFAyaZC3gtk10MainWindow10MainWindow'
./test.d:(.text._Dmain+0x68): undefined reference to `_D3gtk4Main4Main3runFZv'
test.o:(.data._D67TypeInfo_S3std8typecons35__T6scopedTC5cairo7Context7ContextZ6Scoped6__initZ+0x58): undefined reference to `_D3std8typecons35__T6scopedTC5cairo7Context7ContextZ6Scoped6__dtorMFZv'
collect2: error: ld returned 1 exit status
--- errorlevel 1
在过去的两天里,我一直在尝试编译这个简单的hello world应用程序,并查看了多个网站,包括这一个。我尝试过其他人提出的链接技巧,但没有成功。我已经安装了GtkD和gtk+(我已经将gtk与C一起使用,所以我知道该部件工作正常),如果我使用dmd或gdc(目前使用dmd,因为我发现该编译器有更多在线解决方案)


我还应该说,常规的、非guid的代码可以很好地编译。当我尝试使用GtkD时,这种情况就会发生。

我找到了答案。它是:


gdc./test.d-Wall pkg config--cflags--libs gtkd-2-I/usr/include/d/gtkd-2-L/usr/local/lib-lpq

链接器缺少gtkd libs,确保lib路径包含正确的lib foldersHow我应该这样做吗?我已经尝试过:dmd$(pkg config--cflags--libs gtkd-2)。/test.d,dmd(和gdc)test.d-I/usr/local/include/d/gtk-2-l/usr/local/lib,dmd(和gdc)-l/usr/local/include/d/gtk-2/gtk./test.d和其他几个。正确的命令是gdc./test.d-Wall
pkg config--cflags--libs gtkd-2
-I/usr/include/d/gtkd-2-L/usr/local/lib-lpq。谢谢你的帮助。你应该给自己贴一个答案,这样问题看起来就完整了