2015-03-18 3 views
1

Я пытаюсь скомпилировать приветственную программу мира, используя библиотеку gtkd.
Я использую компилятор dmd (установленный в мой каталог ~ /), и я уже проверял, что компилятор работает безупречно.
На всякий случай, вот мой исходный код:Как использовать gtkd на linux

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

прагм закомментировано, потому что (если я понимаю это правильно), они ничего не делают больше, чем -lL флаги, при этом они не получают меня ближе к решению. В любом случае, после того, как я сохранить файл, я бегу:

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

+2

Не изменить заголовок вопроса, чтобы решаемая. Вместо этого выберите правильный ответ из предоставленного ниже или представите свой собственный! Благодарю вас и добро пожаловать в SO! – KuramaYoko

ответ

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

это попытаться найти libgtkd.a но вы не libgtkd.a, то есть libgtkd-3.a так что вы должны использовать:

dmd hello.d -L-lgtkd-3 -L-ldl 
+0

О, боже мой, ты спасатель, спасибо большое. Наверное, это то, что происходит, когда вы знаете только половину правды о том, как что-то работает. – eralus

+0

@eralus: вы должны принять этот ответ. – DejanLekic