Как использовать gtkD в Win7 и dmd (D2)?
Я загрузил gtkD-1.5.1
и извлекается в некоторых gtkD
каталог. Что мне делать дальше? Я не понимаю, должен ли я скомпилировать и связать его с какой-нибудь библиотекой или просто ссылку на него в моем коде?
Изменить: (@dsimcha)
команда dsss build
в gtkD main dir дал мне это:
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
Could not detect versions.
undemofy
Could not detect versions.
Could not detect versions.
atk => DO-atk
cairo => DO-cairo
gdk => DO-gdk
gdkpixbuf => DO-gdkpixbuf
gio => DO-gio
glade => DO-glade
glib => DO-glib
gobject => DO-gobject
gthread => DO-gthread
gtk => DO-gtk
gtkc => DO-gtkc
pango => DO-pango
но не была создана библиотека?
5 ответов
Я могу использовать GtkD без генерации файлов lib, используя rdmd.
- Вы должны установить Gtk+2 runtime
- Загрузите исходный код GtkD в какой-нибудь каталог
- Запустите rdmd --build-only -I / src
rdmd будет автоматически собирать GtkD и код вашего проекта в одиночку, пропуская необходимость создания libs и связывая его вручную.
У меня были проблемы с использованием DSSS в Windows, вы можете попробовать использовать Bud / Build.
Убедитесь, что build.exe находится где-то на вашем пути, затем откройте командную строку в папке gtkD/src/build. Тогда беги build gtkD.brf
создавать GtkD.lib
,
В зависимости от вашей версии DMD, вы получите много ошибок. Большинство из тех, что я получил, было устаревшим. Любой файл, где это произошло (он вам скажет), я просто преобразовал typedef в псевдоним, и он работал нормально. Другая ошибка, которую я получил, была с src/gtk/Toolbar.d
и неоднозначная виртуальная функция getOrientation()
, Чтобы это исправить, зайдите в src/gtk/OrientableIF.d
а также /src/gtk/ToolShellIF.d
и закомментируйте методы getOrientation.
Используя самую последнюю версию DMD (2.059), glib/DateTime.d
не скомпилируется. Чтобы этот файл компилировался, просто закомментируйте метод override hash_t toHash()
,
Когда вы компилируете свой проект, используйте dmd <source files> -L <C:\Path\To\File>\GtkD.lib
Сборка библиотеки. Я бы порекомендовал взглянуть на рекомендации по сборке проекта. Вот шаги, которые они размечают для сборки библиотеки:
- Получите последнюю стабильную версию DSSS и установите ее в своей системе.
- [НЕОБЯЗАТЕЛЬНЫЙ]. Обновите файл dsss.conf в корневом каталоге проекта в соответствии с вашими потребностями. В противном случае обратите внимание на клавишу defaulttargets. Если вам нужна стандартная сборка / установка gtkD, по умолчанию все в порядке.
Сборка gtkD. Перейдите в корень проекта (где находится этот файл) и выполните следующую команду:
$ dsss build
Теперь вы можете установить библиотеки в вашу файловую систему. Из корня проекта запустите:
$ dsss install **--prefix=/usr/local**
Не забудьте установить префикс в соответствии с вашими потребностями. "/usr/local" является нормальным значением по умолчанию и должно работать на большинстве систем без дальнейших действий. Если выбранного префикса нет в вашей переменной PATH, не забудьте обновить переменные среды. Импортируемые файлы также будут автоматически установлены на выбранный префикс. Примечание. Для выполнения этого шага может потребоваться доступ с правами root в соответствии с настройками системы.
- Создайте свои собственные программы, используя предоставленные файлы dsss.conf из любой демонстрационной папки. Обратите особое внимание на флаги сборки, используемые для создания демоверсий. "-L-ldl" необходим в системах Linux.
- Повеселись!
Использование библиотеки: После этого вы можете использовать библиотеку несколькими различными способами в вашей собственной программе в зависимости от того, как она создается:
Если вы используете DSSS для создания своего собственного проекта, то все, что вам нужно сделать, это импортировать модули в код, подобный следующему:
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();
}
Ваш dss.conf будет выглядеть так:
name = helloworld
[helloworld.d]
target = helloworld
И используйте обычные шаги для сборки и установки:
$ dsss build
$ dsss install
Редактировать: Я только что заметил, что вы хотите использовать DMD напрямую, для компиляции вашего проекта вы можете использовать:
dmd helloworld.d -ofhelloworld -L+gtk.lib
Обратите внимание, что этот стиль сборки не рекомендуется для больших проектов, и вы должны использовать DSSS, когда это возможно.
Вам нужно скомпилировать gtkD в двоичный файл. Стандартный способ сделать это с помощью DSSS. В основном, скачайте и установите DSSS, а затем выполните dsss build
из основного каталога gtkD.
Редактировать:
После того, как вы соберете gtkD с использованием DSSS, у вас будет куча файлов.lib в каталоге gtkD. Вы статически связываете их в своем приложении. Кроме того, вы должны иметь библиотеки GTK+, установленные в вашей установке Windows.
Похоже, что последняя версия не всегда работает "из коробки", вам лучше использовать магистральную систему HEAD, перейдя по http://www.dsource.org/projects/gtkd/browser/trunk и нажав ссылку Zip Archive по адресу снизу, версия, которая работала для меня, была r952.
Скачайте bud / build(версия 3.04 работала нормально) и назовите его следующим образом gtkD.brf
Ошибка
Не удалось обнаружить версии
вызвано отсутствием dmd в пути.
Я попробовал gtkD 1.5.1, которая является текущей последней, но потом у меня возникла проблема с typedef, и после того, как я исправил ее вручную, у меня возникла проблема с XOverlay, и после долгих поисков я обнаружил, что они оба исправлены в SVN, поэтому я получил магистраль HEAD и это сработало из коробки.