1

我的代码:

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,因为我找到了更多针对该编译器的在线解决方案) .

我还应该说常规的非 gui D 代码编译得很好。正是当我尝试使用 GtkD 时才会发生这种情况。

4

1 回答 1

1

我找到了答案。这是:

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

于 2014-05-27T03:29:10.807 回答